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
这个逻辑的处理在拨号应用里,如果使用第三方拨号应用而这个应用又没有处理的话,也许会失效。
那么这个功能有什么做用呢?这个就看应用需要了,由于这个Broadcast Receiver运行在你自己的应用进程内,所以可以读取你应用内的一切数据。比如说你可以在接收到Broadcast后dump应用状态,可以打开一个Activity做一些特殊设置,可以启用/禁用一些功能(比如Flyme就可以在输入*#*#6961#*#*后在设置中显示一些辅助功能,可以开启Root等)。
但是,不同的Receiver可以注册相同的android:host,可能会跟其他应用的设置冲突,不过一般情况下应用应该不会使用这个功能,非系统级应用的控制还是放到应用内比较好。
分类:
android
标签:
android
, android secret code
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2013-09-23 Binder in Java