文档章节

Android 里面的android_secret_code

s
 sflfqx
发布于 2015/01/16 18:12
字数 329
阅读 53
收藏 0

在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以及其所支持的参数呢?


本文转载自:http://blog.csdn.net/learnrose/article/details/6223048

s
粉丝 43
博文 202
码字总数 0
作品 0
深圳
高级程序员
私信 提问
新浪微博webView方式授权获取不到accessToken

做了几个新浪分享的项目,昨天遇到了获取不到accessToken,而是授权成功只返回个code,这让我比较纠结,看了新浪官方说需要用code值算accessToken,又看了官方的demo,里面写个暂时不提供code算...

z396431245
2013/09/11
3.6K
0
android adb shell 命令大全

android adb shell 命令大全 1. 显示系统中全部Android平台: android list targets 2. 显示系统中全部AVD(模拟器): android list avd 3. 创建AVD(模拟器): android create avd --nam...

庸人谷
2012/12/10
614
0
分享一个搜索APK中的secret code的小工具

apksecretcode Android 手机中有不少APK都带secret code,也就是可以通过类似“#XXXX#”或者“##XXXXX##*”这样的按键组合在 Phone 应用中调出隐藏界面的东东。这个小工具用了一个查看 APK ...

Carton
2012/03/25
244
0
OAuth认证介绍及腾讯微博OAuth认证示例

自己转载一下自己吧,免得被盗了,贴过来样式都乱了,欢迎大家看原文http://trinea.iteye.com/blog/1290627 本文主要介绍OAuth的用处、OAuth的流程、腾讯微博OAuth认证示例(新浪、人人类似)...

Trinea
2012/03/21
1K
0
Android Studio 设置显示sdk源码

想看TextUtils isEmpty的源码,结果出现的源码没有实际内容,只有一个抛出异常:RuntimeException("stub!!”) 这是为什么呢?小创作 - Android单元测试(七):Robolectric,在JVM上调用安卓...

yoyoso
2018/07/23
466
0

没有更多内容

加载失败,请刷新页面

加载更多

关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
6
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0
面试套路题目

作者:抱紧超越小姐姐 链接:https://www.nowcoder.com/discuss/309292?type=3 来源:牛客网 面试时候的潜台词 抱紧超越小姐姐 编辑于 2019-10-15 16:14:56APP内打开赞 3 | 收藏 4 | 回复24 ...

MtrS
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部