当前位置: 移动技术网 > IT编程>移动开发>Android > Android Secret Code(输入字符弹出手机信息)详解

Android Secret Code(输入字符弹出手机信息)详解

2019年07月24日  | 移动技术网IT编程  | 我要评论

郭贤华,党校个人总结,玫琳凯之窗官网

android secret code

我们很多人应该都做过这样的操作,打开拨号键盘输入*#*#4636#*#*等字符就会弹出一个界面显示手机相关的一些信息,这个功能在android中被称为android secret code,除了这些系统预置的secret code,我们也可以实现自己的secret code,而且实现起来非常简单。

要实现自己的secret code,只需要向系统注册一个broadcast receiver,不需要任何权限,如下所示:

<receiver android:name=".secretreceiver">
  <intent-filter>
    <action android:name="android.provider.telephony.secret_code"/>
    <data android:scheme="android_secret_code" android:host="0123"/>
  </intent-filter>
</receiver>

只需要注册action为android.provider.telephony.secret_code,并且scheme为android_secret_code的broadcast receiver,这样当用户在拨号键盘输入*#*#0123#*#*时就会调用我们注册的receiver了,在receiver中把接收到的intent信息打出来会是这样:

intent { act=android.provider.telephony.secret_code dat=android_secret_code://0123 
flg=0x10 cmp=me.angeldevil.secretcode/.secretreceiver }

这个逻辑的处理在拨号应用里,如果使用第三方拨号应用而这个应用又没有处理的话,也许会失效。

那么这个功能有什么做用呢?这个就看应用需要了,由于这个broadcast receiver运行在你自己的应用进程内,所以可以读取你应用内的一切数据。比如说你可以在接收到broadcast后dump应用状态,可以打开一个activity做一些特殊设置,可以启用/禁用一些功能(比如flyme就可以在输入*#*#6961#*#*后在设置中显示一些辅助功能,可以开启root等)。

但是,不同的receiver可以注册相同的android:host,可能会跟其他应用的设置冲突,不过一般情况下应用应该不会使用这个功能,非系统级应用的控制还是放到应用内比较好。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网