識別に 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
インテントではありません。