Прежде всего вам необходимо получить разрешение в файле AndroidManifest.xml для NFC. Разрешения:
<uses-permission android:name="android.permission.NFC" />
<uses-feature android:name="android.hardware.nfc" />
Операция, которая будет выполнять операцию чтения / записи NFC, добавьте этот фильтр намерений в это действие в файле AndroidManifest.xml:
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
В методе onCreate () вашего действия вы должны инициализировать адаптер NFC и определить Pending Intent:
NfcAdapter mAdapter;
PendingIntent mPendingIntent;
mAdapter = NfcAdapter.getDefaultAdapter(this);
if (mAdapter == null) {
//nfc not support your device.
return;
}
mPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this,
getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
В onResume () функция обратного вызова позволяет отправке переднего плана обнаруживать намерение NFC.
mAdapter.enableForegroundDispatch(this, mPendingIntent, null, null);
В обратном вызове onPause () вы должны отключить отправку сообщения:
if (mAdapter != null) {
mAdapter.disableForegroundDispatch(this);
}
В методе обратного вызова onNewIntent () вы получите новый Nfc Intent. После получения Intent вам необходимо проанализировать намерение обнаружить карту:
@Override
protected void onNewIntent(Intent intent){
getTagInfo(intent)
}
private void getTagInfo(Intent intent) {
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
}
Теперь у вас есть тег. Затем вы можете проверить список технологий тегов, чтобы обнаружить этот тег. Техника обнаружения тегов находится здесь в Мой Другой Ответ
Полный проект можно посмотреть здесь Мой профиль на github