Android中的Mifare Ultralight C身份验证(2.3.6)

时间:2012-03-12 15:37:41

标签: android authentication nfc apdu mifare

我正在尝试验证Mifare Ultralight C(ISO / IEC 14443-2和14443-3 A型兼容)标签。

我使用Android中提供的MifareUltralight.transceive()函数发送身份验证命令。我还检查了NfcA.transceive()(IsoDep似乎与这种标签不兼容,因为这个对象用于处理ISO / IEC 14443-4标签,这就是我不使用IsoDep.transceive())的原因。

所以,当我第一次发送认证请求命令时,标签用AFxxxx回答收发(),我在那里处理标签答案,然后我发送另一个收发()响应那个答案,但是..在发送收发器()之前,标签已经连接,当它被发送时,我收到“标签丢失”警告和“收发失败”。

此外,如果我尝试使用NfcA,也会出现同样的问题。

最后,如果我尝试在第一个响应之后发送一个身份验证命令,我也会收到“标签丢失”警告,收发失败。

所以我的问题是:

  
    

为什么发送第二个收发器()时NFC标签会丢失?<<

  

(它似乎不是超时问题,因为在发送第二个收发器()之前,连接是用标签打开的) 我在UI中使用不同的线程制作了所有内容。

提前致谢!

1 个答案:

答案 0 :(得分:3)

您的方法似乎是正确的。但是,标记的行为表明您对标记答案的响应不正确。在这种情况下,标签拒绝回答。从手机的角度来看,这与失踪的标签无法区分,因此您获得了TagLostException