在android的手机里,进入拨号程序,输入*#*#4636#*#* 可以看到一个测试应用。

查看Phone的源代码,有一个函数专门处理*#*# 开头,#*#*结尾的拨号字符串。

SpecialCharSequenceMgr.java

/**
* Handles secret codes to launch arbitrary activities in the form of *#*#<code>#*#*.
* If a secret code is encountered an Intent is started with the android_secret_code://<code>
* URI.
*
* @param context the context to use
* @param input the text to check for a secret code in
* @return true if a secret code was encountered
*/
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(Intents.SECRET_CODE_ACTION,
Uri.parse("android_secret_code://" + input.substring(4, len - 4)));
context.sendBroadcast(intent);
return true;
}

return false;
}

这样,根据android_secret_code就可以查到系统所用的所有隐形字符串。

b090@test-desktop:~/Android_Code$ find . -name "AndroidManifest.xml" | xargs grep android_secret_code
./packages/providers/CalendarProvider/AndroidManifest.xml: <data android:scheme="android_secret_code" android:host="225" />
./packages/apps/Settings/AndroidManifest.xml: <data android:scheme="android_secret_code" android:host="4636" />
./packages/apps/VoiceDialer/AndroidManifest.xml: <data android:scheme="android_secret_code" android:host="8351" />
./packages/apps/VoiceDialer/AndroidManifest.xml: <data android:scheme="android_secret_code" android:host="8350" />

可以看到,系统代码里面有225/4636/8351/8350隐形字符串。

如果用户想要开发应用程序支持特殊的隐形字串,只需要照猫画虎在AndroidManifest.xml添加Filter就可以了。

例如:

<receiver android:name="TestingSettingsBroadcastReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SECRET_CODE" />
<data android:scheme="android_secret_code" android:host="4636" />
</intent-filter>
</receiver>

有没有什么方法,能看看到系统所支持的intent以及其所支持的参数呢?

更多相关文章

  1. Android保存图片到系统相册
  2. 友盟推送android 8.0系统不显示推送消息问题
  3. Android Wifi子系统源代码View
  4. Android系统权限和root权限大全
  5. Android灯光系统(硬件访问服务框架)
  6. Android 属性系统 详解
  7. android string.xml中格式资源字符串
  8. Android 系统常用权限
  9. Android调用系统短信发送界面并预设接收号码、短信内容

随机推荐

  1. Android动态加载插件APK
  2. 腾讯微博java(android) sdk 话题相关api
  3. Android 实现应用更新适配 Android O (An
  4. 使用Android Studio手把手教你将应用打包
  5. Android(安卓)JNI作用及其详解
  6. 关于NeHe OpenGL教程的翻译和Android(安
  7. Android避免反复弹出同一Toast
  8. 设计模式-Handler的机制和原理&责任链模
  9. Android 分享功能实现与 QQ 纯文本分享
  10. Android中的ListView内容刷新问题