使用Android的NFC Mifare Ultralight C身份验证超时

时间:2012-10-09 17:17:30

标签: android authentication nfc mifare

我正在尝试按照步骤使用Android手机(三星Galaxy Nexus)验证Mifare Ultralight C标签。如果步骤之间没有延迟,则身份验证可以正常工作。但是,如果存在延迟,例如,在响应消息之前等待200ms,则抛出IOException。

我尝试了Android API提供的setTimeout方法,但似乎没有什么区别。

我认为这不是Tag问题,因为我可以使用连接到Macbook的不同阅读器对其进行身份验证,即使有一些延迟。 (实际上我能够逐步完成代码并且标签没有抱怨)。

这是Android API限制吗?任何解决方法?是否应该在这种情况下使用setTimeout方法?我怀疑我可能会错误地使用该方法。

提前致谢。

1 个答案:

答案 0 :(得分:2)

每当您不与标签通信时,Android都会不断检查是否存在标签。它是如何做的取决于标签的技术(NfcA / B / F / V或IsoDep),但在MIFARE Ultralight的情况下,这将通过重新选择标签来完成。这实际上会重置它,因此任何身份验证上下文都将丢失,并且标记将无法继续进行身份验证。

这种行为与典型的桌面阅读器完全不同。所以你需要在这种情况下意识到这一点。最好的办法是通过持续与标签通信来防止自动存在检查开始。 (当您在调试器中单步执行代码时,也会启动状态检查,BTW。)