NFC-OnNewIntent()有时在Android设备上不起作用

问题描述 投票:0回答:1

我一直在我的应用中检测到启用NFC的卡,以读取标签值。以下是我的代码

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代码有什么问题吗?

请提出建议

NOTE-重新启动(杀死应用程序后)应用程序可解决该问题。此后,卡检测将起作用。

java android nfc
1个回答
0
投票

如果尚未添加以下内容,请在意图过滤器中添加以下内容:

<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<action android:name="android.nfc.action.TAG_DISCOVERED"/>
<action android:name="android.nfc.action.TECH_DISCOVERED"/>
© www.soinside.com 2019 - 2024. All rights reserved.