попробуйте этот мой рабочий код.
сначала добавьте строку ниже в onCreate ()
mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
, затем добавьте строку ниже для вашего метода вызова onResume ()
PendingIntent pendingIntent = PendingIntent.getActivity(
this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
IntentFilter tagDetected = new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED);
IntentFilter ndefDetected = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED);
IntentFilter techDetected = new IntentFilter(NfcAdapter.ACTION_TECH_DISCOVERED);
IntentFilter[] nfcIntentFilter = new IntentFilter[]{techDetected, tagDetected, ndefDetected};
if (mNfcAdapter != null)
mNfcAdapter.enableForegroundDispatch(this, pendingIntent, nfcIntentFilter, null);
затем добавьте строку кода ниже в onPause ()
if (mNfcAdapter != null)
mNfcAdapter.disableForegroundDispatch(this);
и в манифест добавьте разрешение ниже
<uses-permission android:name="android.permission.NFC" />