私は od NFC タグを利用するアプリケーションを書いています。NFC タグをアプリケーションへのエントリ ポイントにしたい - 電話までのタグを含むカードを閉じると、アクティビティが開始されます。次に、アクティビティが実行されているときに、NFC タグを使用できるすべてのインテント フィルターを無効にしたいので、別のクローズアップでは何もしません (アクティビティを最初からやり直したくありません)。アクティビティ エイリアスを使用して、インテント フィルターを「無効にする」方法を知っています。
<activity-alias android:enabled="true"
android:name=".alias.NFCEntryPoint"
android:targetActivity="pl.mitrue.safedb.NFCEntryPoint"
android:exported="true"
android:icon="@drawable/ic_launcher"
android:label="@string/alias.pl.mitrue.safedb.NFCEntryPoint" >
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity-alias>
次に、プログラムでエイリアスを無効にできるため、インテント フィルターも無効になります。
getPackageManager().setComponentEnabledSetting(new ComponentName("pl.mitrue.safedb", "pl.mitrue.safedb.alias.NFCEntryPoint"),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
ここで問題があります。私のデバイスには、この種のフィルタを使用する他のアプリケーションがインストールされています。ここで、アプリケーションの実行中に (アクティビティ エイリアスを無効にして) インテント フィルターを無効にすると、使用するアプリケーションの選択を求めるダイアログが表示されます。これを回避する方法はありますか?最も単純なシナリオでは、アプリケーションが開始されたら、NFC タグを閉じるときに何のアクションも実行したくありません。外部インテントを受信できる唯一のアプリケーションにする方法はありますか?
記録のために: NFC を完全にオフにしたくはありません (それが可能かどうかさえわかりません)。
私の主張を明確にしたことを願っています。私はここで新しいので、理解してください。
ありがとう!