Android在拨号界面输入##12345##这样格式的代码,就会自动跳转,它是如何实现的呢?
SecretCode的实现都是利用receiver来完成的,当检测到固定格式的字符串输入后,就会送暗码广播:
static private boolean handleSecretCode(Context context, String input) {
// Secret codes are in the form *#*#<code>#*#*
int len = input.length();
if (len > 8 && input.startsWith("*#*#") && input.endsWith("#*#*")) {
Intent intent = new Intent(TelephonyIntents.SECRET_CODE_ACTION,
Uri.parse("android_secret_code://" + input.substring(4, len - 4)));
context.sendBroadcast(intent);
return true;
}
return false;
}
如果要添加暗码,例如83781,只需要在目标应用的AndroidManifest文件中注册:
<receiver android:name="EMStartReceiver" >
<intent-filter>
<action android:name="android.provider.Telephony.SECRET_CODE" />
<data android:host="83781"
android:scheme="android_secret_code" />
</intent-filter>
</receiver>
然后在receiver中启动主Activity,注意主Activity不要声明为Launcher。
这样就完成了。
网友评论