Избегайте повторного обнаружения бесконтактной карты после завершения моей транзакции

Контекст этого вопроса начинается при реализации решения, описанного в чрезвычайно полезных ответах на это вопрос. В итоге я написал другой код для телефонов с Android 4.4 (используя enableReaderMode) и для более ранних версий (используя enableForegroundDispatch).

После того, как мое приложение завершило взаимодействие с картой, я наблюдал два разных поведения:

  • При использовании enableForegroundDispatch взаимодействия NFC между телефоном и картой не происходит, пока пользователь не извлечет карту из телефона и не поднесет ее снова.
  • При использовании enableReaderMode, как только действие, в котором я закодировал взаимодействие телефона с картой, завершается, телефон снова пытается прочитать карту: запускается либо другое приложение (если оно подписано на события NFC), либо телефон воспроизводит раздражающий звук (карта NFC обнаружена, но ни одно приложение не прослушивает это событие). Это весьма нежелательно, так как ухудшает работу пользователя — прежде чем он/она успеет удалить карту, происходит что-то еще.

Есть ли способ настроить enableReaderMode так, чтобы телефон вел себя как enableForegroundDispatch?


person mictter    schedule 19.09.2014    source источник
comment
Можете ли вы указать источник вашей функции enableReaderMode?   -  person S.Pols    schedule 21.09.2014
comment
Это один из методов стандартного класса API NfcAdapter, документация находится здесь: developer.android.com/reference/android/nfc/, android.nfc.NfcAdapter.ReaderCallback, int, android.os.Bundle)   -  person mictter    schedule 21.09.2014