输入密码后启动我的应用程序?

时间:2012-07-30 15:06:34

标签: android

如果在拨号器中输入了*#*#12345#*#*等密码,我将如何启动应用程序?

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

3 个答案:

答案 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)

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

在附加内容中,您会找到the dialed number

编辑:以下是tutorial广播接收器。

答案 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>

查看herehere。使用LogCat查看exacly intent contatins然后你可以正确过滤这个。