Android(安卓)rom开发:通过拨号使用暗码打开不显示图标的应用
16lz
2021-12-04
修改packages/apps/Dialer下的SpecialCharSequenceMgr.java即可,不同android 版本具体路径可能不一样,笔者的修改基于android 7.1 sdk。
效果:
在拨号键盘输入*#1024#*,打开在launcher里面不显示图标的test app。
使用场景:
显示一些隐秘的系统信息,或者打开测试工具,等等
patch如下:
diff --git a/packages/apps/Dialer/src/com/android/dialer/SpecialCharSequenceMgr.java b/packages/apps/Dialer/src/com/android/dialer/SpecialCharSequenceMgr.javaold mode 100755new mode 100644index 24c3198..5e11c0a--- a/packages/apps/Dialer/src/com/android/dialer/SpecialCharSequenceMgr.java+++ b/packages/apps/Dialer/src/com/android/dialer/SpecialCharSequenceMgr.java@@ -23,6 +23,7 @@ import android.app.KeyguardManager; import android.app.ProgressDialog; import android.bluetooth.BluetoothAdapter; import android.content.ActivityNotFoundException;+import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface;@@ -80,6 +81,7 @@ public class SpecialCharSequenceMgr { private static final String MMI_REGULATORY_INFO_DISPLAY = "*#07#"; private static final String PRL_VERSION_DISPLAY = "*#0000#";+ private static final String CODE_TEST = "*#1024#*"; private final static String LOG_SETTINGS = "*#3333#*"; @@ -147,6 +149,7 @@ public class SpecialCharSequenceMgr { String dialString = PhoneNumberUtils.stripSeparators(input); if (handleDeviceIdDisplay(context, dialString)+ || handlePcbaTest(context, dialString) || handlePRLVersion(context, dialString) || handleRegulatoryInfoDisplay(context, dialString) || handlePinEntry(context, dialString)@@ -176,6 +179,21 @@ public class SpecialCharSequenceMgr { } + static private boolean handleCodeTest(Context context, String input) { + if (input.equals(CODE_TEST)) { + try { + Intent intent = new Intent();+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);+ intent.setComponent(new ComponentName("com.code.test", "com.code.test.MainActivity"));+ context.startActivity(intent);+ return true;+ } catch (ActivityNotFoundException e) { + Log.d(TAG, "no activity to handle test");+ }+ }+ return false;+ }+ static private boolean handlePRLVersion(Context context, String input) { if (input.equals(PRL_VERSION_DISPLAY)) { try {
更多相关文章
- Android(安卓)TextView属性详解
- Android修改原生RatingBar颜色、大小,以及自定义的样式
- 解决TextView中MaxLines与ellipsize=end冲突问题
- 调用Android自带浏览器打开网页
- Android(安卓)TextView文字横向自动滚动(跑马灯)
- Android(安卓)显示网络图片
- Android(安卓)Recovery Ui 分析
- Android访问服务器
- 在控件的任意位置显示图片