使用NfcAdapter和IsoDep

时间:2012-03-28 10:37:02

标签: android nfc

我正在尝试使用IsoDep和NfcAdapter类将APDU发送到标签(智能卡),我有两个问题:

1)有没有办法获得断开的意图(例如当卡被拿走时)?我没有看到任何针对此类操作的预定义意图。了解Tag何时断开连接的唯一方法是轮询其IsoDep.isConnected()方法?

2)假设我需要在一个序列中发送多个APDU,有没有办法确保没有其他应用程序中断中间的通信?是否有类似pcsc交易(SCardBegin / EndTransaction)的NFC?

谢谢!

1 个答案:

答案 0 :(得分:2)

回答问题1:断开标签不会产生任何意图。当您正在与之通信的标记消失(即没有回答)时,您将获得TagLostException(一种特殊的IOException)。 IsoDep.isConnected()仅报告最后一个已知状态,因此轮询它通常不会告诉您标记是否确实存在。

对问题2的回答:只有通过标记句柄接收到Intent的Activity才能与标记通信。因此,其他活动或服务无法闯入或接管与标签的通信。唯一可能发生的事情是,当您正在沟通时,您的活动被暂停(Activity.onPause()被调用)。