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

标签 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 回答 transceive() ..... 我在其中处理标签答案,然后我发送另一个 transceive() 以及对该答案的响应但是.. . 就在发送 transceive() 之前,标签已连接,发送时我收到“标签丢失”警告和“收发失败”。

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

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

所以我的问题是:

Why does the NFC tag get lost when I send the second transceive()?<<

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

提前致谢!

最佳答案

您的方法似乎是正确的。但是,标签的行为表明您对标签答案的回应是不正确的。在这种情况下,标签拒绝回答。从手机的角度来看,这与标签消失没有区别,因此您会收到 TagLostException

关于android - Android 中的 Mifare Ultralight C 身份验证 (2.3.6),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9670077/

相关文章:

android - 将数据写入不适合的 NFC 标签

android - 侧导航栏未显示在移动设备中?

php - "HTTP authentication with PHP"的好处

html - 在 URL 中传递用户名和密码不起作用

c++ - 如何向 socks5 代理服务器添加身份验证?

nfc - 如何在 Windows Phone 8 上使用 NFC 标签启动应用程序?

java - DESFire 身份验证的 DES 发送和接收模式

java - 安卓 : Getting "null" from intent

android - 如何从android.app.Notification对象检索ContentText?

android - 找到蓝牙收件箱