Как обнаружить событие удаления тега NFC? - PullRequest
0 голосов
/ 08 февраля 2019

Я разрабатываю приложение для Android для чтения / записи на бесконтактных смарт-картах через NFC.Мне нужно определить, когда карта вытащена за пределы диапазона.Я пытался использовать

 NFCAdapter.OnTagRemovedListener{
        card_connected2.visibility =  View.VISIBLE
        card_connectedgreen.visibility =  View.GONE
        Toast.makeText(this@InquiryActivity, "card is disconnected", Toast.LENGTH_LONG).show()
}

, но это кажется неправильным и не работает.Я также читал о NfcAdapter.ignore(), но я не могу найти пример того, как его использовать.Как я могу заставить вышеупомянутый обратный вызов работать?

1 Ответ

0 голосов
/ 16 февраля 2019

Интерфейс OnTagRemovedListener используется для указания обратного вызова для метода NfcAdapter.ignore().Следовательно, вам нужно позвонить ignore() с нужным обратным вызовом.Например, если вы хотите выполнить приведенный выше код с таймаутом отладки 1000 мс, вы можете использовать что-то вроде этого:

// nfcAdapter: your instance of the NfcAdapter
// tag: the tag handle that you obtained from the NFC intent or the onTagDetected() callback

nfcAdapter.ignore(tag, 1000, NfcAdapter.OnTagRemovedListener {
        card_connected2.visibility =  View.VISIBLE
        card_connectedgreen.visibility =  View.GONE
        Toast.makeText(this@InquiryActivity, "card is disconnected", Toast.LENGTH_LONG).show()
}, Handler(Looper.getMainLooper()))

Обратите внимание, что nfcAdapter и tag должны быть определены соответственно.Функция обратного вызова будет вызываться в основном потоке пользовательского интерфейса.

...