我开发了一个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()的信息,但找不到有关如何使用它的任何示例。如何使以上回调起作用?

最佳答案

OnTagRemovedListener接口(interface)用于指定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()))

注意,nfcAdaptertag需要相应地定义。回调函数将在主(UI)线程上调用。

10-08 02:02