Вот как я это делаю:
Прежде всего вы должны инициализировать NfcAdapter
, когда вам это нужно, этой строкой
mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
Затем переопределить onNewIntent
вот так
@Override
protected void onNewIntent(Intent intent) {
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
Log.d(TAG, "onNewIntent: "+intent.getAction());
if(tag != null) {
Ndef ndef = Ndef.get(tag);
readFromNFC(ndef);
}else{
toastUser(getApplicationContext(), "Problem reading NFC tag!\nPlease try again.", Toast.LENGTH_SHORT);
}
}
Наконец прочитайте тег NFC
private void readFromNFC(Ndef ndef) {
try {
ndef.connect();
NdefMessage ndefMessage = ndef.getNdefMessage();
if(ndefMessage != null) {
NdefRecord[] records = ndefMessage.getRecords();
//records will produce an array of strings stored on the tag
//iterate through them as handle as required.
}
ndef.close();
} catch (IOException | FormatException e) {
e.printStackTrace();
}
}