Я обнаружил в своем приложении карту с поддержкой NF C для чтения значения тега. Ниже приведен мой код
OnCreate ()
nfcAdapter = NfcAdapter.getDefaultAdapter(AuthDriverCard.this);
piTap = PendingIntent.getActivity(
this, TAP_REQUEST_CODE, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), PendingIntent.FLAG_UPDATE_CURRENT);
IntentFilter tagDetected = new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED);
IntentFilter ndefDetected = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED);
IntentFilter techDetected = new IntentFilter(NfcAdapter.ACTION_TECH_DISCOVERED);
nfcIntentFilter = new IntentFilter[]{techDetected, tagDetected, ndefDetected};
OnResume
if (nfcAdapter != null) {
nfcAdapter.enableForegroundDispatch(AuthDriverCard.this, piTap, nfcIntentFilter, null);
}
OnPause
if (nfcAdapter != null) {
nfcAdapter.enableForegroundDispatch(AuthDriverCard.this, piTap, nfcIntentFilter, null);
}
OnNewIntent ()
protected void onNewIntent(Intent intent) {
// my logic here
}
Этот код почти всегда работает нормально. Но какое-то время card is not detecting
и я обнаружил, что OnNewIntent() is not firing
.
В чем может быть проблема. Нужно ли мне также set intent filter in manifest
? Я пока не установил его в манифесте, но у меня это сработало без проблем. Есть ли проблема в моем коде java?
Пожалуйста, предложите
ПРИМЕЧАНИЕ - Перезапустите (после закрытия приложения) приложение, чтобы решить проблему. обнаружение карты работает после этого.