2017-02-01 5 views
0

Я использую NFC для чтения RFID из паспортов с использованием библиотеки jmrtd. Проблема в том, что я хочу прекратить получать связанные с nfc намерения после того, как данные будут успешно прочитаны, но в настоящее время, даже если некоторые другие действия находятся на переднем плане, приложение снова возобновляет работу по чтению nfc при обнаружении тегов.Остановить чтение тега NFC после первого раза

Мой код:

protected void onResume() { 
     super.onResume(); 
     this.mAdapter.enableForegroundDispatch(this, this.mNfcListener, mIntentFilters, null); 
    } 

    //<editor-fold desc="NFC"> 
    public boolean initNFC() { 
     this.mAdapter = NfcAdapter.getDefaultAdapter(this); 
     if (this.mAdapter == null) { 
      return false; 
     } 
     Intent i = new Intent(this, getClass()); 
     i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
     this.mNfcListener = PendingIntent.getActivity(this, 0, i, 0); 
     IntentFilter tagFilter = new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED); 
     IntentFilter ndefFilter = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED); 
     this.mIntentFilters = new IntentFilter[]{tagFilter, ndefFilter}; 
     return true; 
    } 

    protected void onPause() { 
     mAdapter.disableForegroundDispatch(this); 
     super.onPause(); 
    } 

ответ

0

, что невозможно ... потому, что ваша деятельность имеет намерения действие фильтра NDEF_DISCOVERED.

читать далее ... How to detect NFC tag was removed

Смежные вопросы