5

当密码(例如*#*#12345#*#*在拨号器中输入)时,我将如何启动我的应用程序?

我在 Android 文档中找不到解决方案。

4

3 回答 3

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 类,扩展了广播接收器),然后在 onReceive 类中,触发启动活动的意图。

然后输入*#*#(secret code)#*#*拨号器将启动应用程序。

于 2012-07-30T16:24:49.137 回答
6

使用此操作创建广播接收器:

在附加信息中,您可以找到拨打的号码

编辑:这是广播接收器的教程

于 2012-07-30T15:12:44.327 回答
0

安装广播接收器也许你应该注册到正确的活动意图。例如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>

看看这里这里。使用 LogCat 查看确切的意图 contatins 然后您可以正确过滤它。

于 2012-07-30T15:45:53.167 回答