識別に NFC タグを使用するアプリを開発しています。ただし、私が見つけたすべての例は、特定のカードが読み取られたときにアプリを起動することに関するものです。別の方法についての例やドキュメントを探してみましたが、役に立ちませんでした。
私が欲しいのは:
- ユーザーが私のアプリを起動します
- ユーザーがNFCカードをスキャン
- アプリが次のステップを決定します
タグデータを取得できません。
でonCreate:
pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this,
getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
tech = new IntentFilter(NfcAdapter.ACTION_TECH_DISCOVERED);
try {
tech.addDataType("*/*");
} catch (MalformedMimeTypeException e) {
throw new RuntimeException("fail", e);
}
intentFiltersArray = new IntentFilter[] { tech };
そしてでonResume:
nfcAdapter.enableForegroundDispatch(this, pendingIntent, intentFiltersArray, techList);
インテントはアプリがアクティブなときにのみ取得されIntentますが、受け取るのはPendingIntent自分で定義したものであり、必要なACTION_TECH_DISCOVEREDインテントではありません。