修改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 {     

更多相关文章

  1. Android(安卓)TextView属性详解
  2. Android修改原生RatingBar颜色、大小,以及自定义的样式
  3. 解决TextView中MaxLines与ellipsize=end冲突问题
  4. 调用Android自带浏览器打开网页
  5. Android(安卓)TextView文字横向自动滚动(跑马灯)
  6. Android(安卓)显示网络图片
  7. Android(安卓)Recovery Ui 分析
  8. Android访问服务器
  9. 在控件的任意位置显示图片

随机推荐

  1. Android--Dialog
  2. 对Android中Intent的理解
  3. Android(安卓)Looper和Handler分析 .
  4. Android中的Gallery的使用
  5. React-Native 写的 android 应用
  6. 短信ui-会话编辑界面(二)接收者UI
  7. Android(三) 数据存储之二 SharedPreferenc
  8. [转]Android(安卓)APK反编译得到Java源代
  9. android AVD 启动时报错(emulator: error
  10. Android内存(内存溢出 内存不足 内存低 )