android 高通-判断修改-记录
来源:互联网 发布:阿里云 lnmp 无法访问 编辑:程序博客网 时间:2024/05/29 07:51
提高APK进程权限:
这样可以将该进程设置为常驻内存进程,就可以降低被Kill的概率。
以Acore进程为例,
在 /package/providers/ContactsProvider/AndroidMannifest.xml 文件中增加一行『android:persistent="true"』
具体修改示例如下:
<application android:process="android.process.acore"
android:label="@string/app_label"
android:icon="@drawable/app_icon"
android:allowBackup="false"
android:persistent="true" <!--新增加代码,保证acore进程不被ActivityManager杀死-->
>
长按关机键修改:
LA.UM.5.6/LINUX/android/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.javacase MSG_POWER_LONG_PRESS:case MSG_POWER_LONG_PRESS:783 784//powerLongPress();powerLongPress();784 785if(SystemProperties.get("persist.sys.power.nolongpress").equals("1")){ 786Slog.w("xiexijun","persist.sys.power.nolongpress"); 787}else{ 788powerLongPress(); 789} 790break;
永不灭屏
方式1:
+import android.os.PowerManager;
+import android.os.SystemProperties;
+ public static PowerManager.WakeLock wakeLock;
+ public static PowerManager pm;
+ pm=(PowerManager)getSystemService(POWER_SERVICE);
+ wakeLock=pm.newWakeLock(PowerManager.FULL_WAKE_LOCK|PowerManager.ACQUIR
+ wakeLock.acquire();
退出是记得释放:
+ if(wakeLock!=null){
+ wakeLock.release();
+ }
方式2:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
APK全屏:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
长按关机键弹出:Dialog
frameworks/base/services/core/java/com/android/server/policy/GlobalActions.java
vendor/qcom/proprietary/qrdplus/China/ChinaMobile/res/Frameworks/res/values/config.xml
vendor/qcom/proprietary/qrdplus/Extension/res/frameworks/base/core/res/res/values/config.xml
GlobalActions.java
private GlobalActionsDialog createDialog()
布局文件搜索:config_globalActionsList
飞行模式:
// Let the service state callbacks handle the state.
if (mHasTelephony) return;
boolean airplaneModeOn = Settings.Global.getInt(
mContext.getContentResolver(),
Settings.Global.AIRPLANE_MODE_ON,
0) == 1;
mAirplaneState = airplaneModeOn ? ToggleAction.State.On : ToggleAction.State.Off;
mAirplaneModeOn.updateState(mAirplaneState);
}
00——class 0,可直接显示。
01——class 1,默认储存在ME内存中。
02——class 2,储存在SIM卡中。
03——class 3,可直接传输到终端设备TE。
默认的短消息存在SIM卡中,无类别的短消息通常也存在SIM卡中。
手机当前是否有电话和在通话界面判断:
isShowingInCallUi()
手机当前是否有活动的电话(有电话)判断:
CallList.getInstance().hasLiveCall()
手机设置值存储手机位置:
系统时间变量:
SystemClock.elapsedRealtime()
通话持续时间:
public long getConnectTimeMillis() {
return mTelecommCall.getDetails().getConnectTimeMillis();
}
通话时间显示函数位置:
CallCardFragment.java:
变量:mElapsedTime
函数:void setPrimaryCallElapsedTime(boolean show, long duration);
高通SIM 卡状态修改文件:MSimNetworkControllerImpl.java
手机支持几个SIM卡:
TelephonyManager telephonyManager = (TelephonyManager)mApplication.getSystemService(
Context.TELEPHONY_SERVICE);
for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++)
判断SIN卡有没有插入:
* SIM的状态信息:
* SIM_STATE_UNKNOWN 未知状态 0
* SIM_STATE_ABSENT 没插卡 1
* SIM_STATE_PIN_REQUIRED 锁定状态,需要用户的PIN码解锁 2
* SIM_STATE_PUK_REQUIRED 锁定状态,需要用户的PUK码解锁 3
* SIM_STATE_NETWORK_LOCKED 锁定状态,需要网络的PIN码解锁 4
* SIM_STATE_READY 就绪状态 5
if(TelephonyManager.getDefault().getSimState(0)==TelephonyManager.SIM_STATE_ABSENT)--没有插入SIM卡1
public int csh_sim(){
System.out.println("csh Presence or absence of a SIM card:");
if((TelephonyManager.getDefault().getSimState(0)!=TelephonyManager.SIM_STATE_ABSENT)&&(
(TelephonyManager.getDefault().getSimState(1)==TelephonyManager.SIM_STATE_ABSENT))){
System.out.println("csh Only SIM1 = Yes = 1");
return 1;
}
else if((TelephonyManager.getDefault().getSimState(0)==TelephonyManager.SIM_STATE_ABSENT)&&(
(TelephonyManager.getDefault().getSimState(1)!=TelephonyManager.SIM_STATE_ABSENT))){
System.out.println("csh Only SIM2 = Yes = 2");
return 2;
}
else if((TelephonyManager.getDefault().getSimState(0)!=TelephonyManager.SIM_STATE_ABSENT)&&(
(TelephonyManager.getDefault().getSimState(1)!=TelephonyManager.SIM_STATE_ABSENT))){
System.out.println("csh SIM1 and SIM2 = Yes = 3");
return 3;
}
else if((TelephonyManager.getDefault().getSimState(0)==TelephonyManager.SIM_STATE_ABSENT)&&(
(TelephonyManager.getDefault().getSimState(1)==TelephonyManager.SIM_STATE_ABSENT))){
System.out.println("csh SIM1 and SIM2 = NO = 4");
return 4;
}
return 0;
}
卡有没有插入:android高通判断方式:
@Override
public void onCallForwardingIndicatorChanged(boolean cfi) {
Phone phone = PhoneUtils.getPhoneFromSubId(mSubId);
System.out.println("csh-CallNotifier.java-getPhoneStateListener() mSubId = " + mSubId +"-> cfi = " + cfi + " phone = " + phone);
//onCfiChanged(cfi, phone);
UiccController uiccController = UiccController.getInstance();
UiccCard uicc = uiccController.getUiccCard(phone.getPhoneId());
SubscriptionController sub = SubscriptionController.getInstance();
if (((uicc != null ) && uicc.getCardState().isCardPresent())
&& sub.getSubState(mSubId) == SubscriptionManager.ACTIVE) {
onCfiChanged(cfi, phone);
} else {
Log.d(LOG_TAG,"SIM deactivated or removed");
}
}
去除状态栏图标:
mNotificationManager.cancel(null /* tag */, getNotificationId(CALL_FORWARD_NOTIFICATION, 0));---去除卡1呼叫转移图标
NotificationMgr.java (packages\services\telephony\src\com\android\phone): int notificationId = getNotificationId(CALL_FORWARD_NOTIFICATION, phoneId);
updateNetworkSelection;updateCfi;
- android 高通-判断修改-记录
- 高通ANDROID平台默认时间修改
- owncloud-android 修改记录
- android 源码修改记录
- android修改开机第一屏,高通8x60方案
- Android 高通平台开机logo的修改
- Android 高斯模糊一些细节记录
- Android之高斯模糊的记录
- android 修改图片的宽高
- android 修改图片的宽高
- android 修改图片的宽高
- Android 修改videoview的宽高
- Android 修改PagerSlidingTabStrip 高亮选中标题
- 高通平台修改msm8916_defconfig
- Android - 使用SharedPreference判断字符串是否修改
- Android WebKit EventSource 支持修改记录
- linux mint13 android使用错误修改记录
- linux mint13 android使用错误修改记录
- c#大批量数据插入
- NSURLSession_NSURLSessionDownloadTask
- js验证邮箱的正则表达式
- Git 学习笔记 --- 自定义Git
- Android 打包jar,aar以及在项目中的引用
- android 高通-判断修改-记录
- 完成01
- 让网页华丽丽的动起来——jQuery事件之旅(码神学习第二十五天)
- 常见试题:用递归实现阶乘
- 完成02
- 初窥Linux 之 我最常用的20条命令
- IDA 与VC 加载符号表
- 修改系统中某个界面
- Windows环境下PHP开发环境配置