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 クラスを作成し、BroadCast レシーバーを拡張しました)、次に onReceive クラスで、アクティビティを起動するインテントを起動します。

次に*#*#(secret code)#*#*、ダイヤラーに入力すると、アプリが起動します。

于 2012-07-30T16:24:49.137 に答える
6

次のアクションでブロードキャストレシーバーを作成します。

エクストラには、ダイヤル番号があります。

編集:これは放送受信機のチュートリアルです。

于 2012-07-30T15:12:44.327 に答える
0

放送受信者は、適切な活動目的に登録する必要があるかもしれません。たとえば、Intent.ACTION_CALLは魅力的に見えます。問題は、この1つの特定の番号のみを受け取るようにインテントをフィルタリングする方法です。私はそれがこのように見えるだろうと思う(私はドキュメントで見つけたものに基づいて推測している):

<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を使用して、正確に意図されたコンタチンを確認し、これを適切にフィルタリングできます。

于 2012-07-30T15:45:53.167 に答える