如果在拨号器中输入了*#*#12345#*#*
等密码,我将如何启动应用程序?
我在Android文档中找不到解决方案。
答案 0 :(得分:9)
我就这样做了:
我将主要活动改为没有意图过滤器:
<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类,扩展了BroadCast Receiver),然后在onReceive类中启动了一个启动活动的意图。
然后在拨号器中键入*#*#(secret code)#*#*
将启动该应用。
答案 1 :(得分:6)
答案 2 :(得分:0)
Insted广播接收者也许您应该注册适当的活动意图。例如,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>