2

ユーザーが番号をダイヤルするとすぐにアクティビティをアクティブにする必要があるアプリケーションがあります。たとえば、数字の「6」です。私の質問は次のとおりです。キーパッドから番号がダイヤルされるとすぐに、アプリまたはアプリ内のアクティビティをアクティブにするにはどうすればよいですか?

4

1 に答える 1

2

「秘密のコード」機能を探しているようです。単一の番号をリッスンすることはできませんが (それが可能だとは思いません)、# #123456# #などのコードでアプリを起動できるようにします。

次のように、BroadcastReceiver を登録して、マニフェストでシークレット コードをリッスンできます。

<receiver android:name=".MyBroadcastReceiver">
    <intent-filter>
        <action android:name="android.provider.Telephony.SECRET_CODE"/>
        <data android:scheme="android_secret_code" android:host="123456"/>
    </intent-filter>
</receiver>

BroadcastReceiver は次のようになります。

public class MyBroadcastReceiver extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
        if ("android.provider.Telephony.SECRET_CODE".equals(intent.getAction())) {
            Intent i = new Intent(Intent.ACTION_MAIN);
            i.setClass(context, MyBroadcastReceiver.class);
            i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }
     }
}
于 2013-11-11T14:43:05.353 に答える