当密码(例如*#*#12345#*#*
在拨号器中输入)时,我将如何启动我的应用程序?
我在 Android 文档中找不到解决方案。
我是这样做的:
我将主要活动更改为没有意图过滤器:
<activity
android:name=".ParentTrap"
android:label="@string/title_activity_parent_trap"
android:theme="@android:style/Theme.Holo" >
</activity>
然后我使用意图过滤器操作制作了一个广播接收器:android.provider.Telephony.SECRET_CODE
然后我向其中添加了数据。整个事情如下:
<receiver android:name=".ParentTrap$Launch" >
<intent-filter>
<action android:name="android.provider.Telephony.SECRET_CODE" />
<data
android:host="(secret code)"
android:scheme="android_secret_code" />
</intent-filter>
</receiver>
完成后,创建一个类(我在主类中创建了 Launch 类,扩展了广播接收器),然后在 onReceive 类中,触发启动活动的意图。
然后输入*#*#(secret code)#*#*
拨号器将启动应用程序。
安装广播接收器也许你应该注册到正确的活动意图。例如Intent.ACTION_CALL看起来很有前途。问题是如何过滤意图以仅接收这一特定数字。我怀疑它看起来像这样(我正在根据我在文档中找到的内容进行计算):
<action name=".YourAction">
<intent-filter . . . >
<action android:name="android.intent.action.CALL" />
<!-- data is crutial here, you have to figuire it out exacly yourself -->
<data android:scheme="tel" android:path="yourSpecyficSecretCode" />
</intent-filter>
</action>