Android rom开发:通过拨号使用暗码打开不显示图标的应用

修改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.java
old mode 100755
new mode 100644
index 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 {
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值