がアクティブ化されている場合にのみ、アプリが nfc タグをリッスンするようにします。このために、次のようにnfcリスナーを登録しようとしましたが、成功しませんでした。
IntentFilter filter = new IntentFilter("android.nfc.action.TECH_DISCOVERED");
registerReceiver(nfcTagListener, filter);
BroadcastReceiver nfcTagListener = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(action)) {
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
Log.d("nfc", "" + tag.getId());
}
}
};
apidemos に続いてマニフェストでインテントを宣言することも試みましたが、完全に機能し、アクティビティを起動して nfc タグ ID を取得します。しかし、これは私が望むものではありません。そのアクティビティの中にいるときにのみタグ ID を検出したいのです。APIデモに含まれる次の行に関連している可能性があると考えています。しかし、プログラムでそれを行う方法がわかりません
<meta-data android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/filter_nfc">
ヒントはありますか?
ありがとう!