java – 在Android中同时读取多个NFC标签

新的2.3.3 SDK包括改进的NFC支持,我想编写一个依赖于此的应用程序。最终,我想能够从同时进入该领域的多个标签读取数据,但Android只是在第一个进入该字段的触发器中被忽略。

从我使用的标签(Mifare Classic)阅读NFC规范(ISO / IEC 14443-3),我应该能够向标签发送一个“暂停”命令,这将导致它停止响应,并允许我来读这个字段中的下一个标签。 Android不支持直接在任何TagTechnology子类上执行halt命令,所以我试图直接使用transceive(new byte [] {0x50,0x00})发送它。这会抛出一个IOException,并显示“收发失败”消息。

诚然,我正在从主线程中做所有这一切,我明白是一个坏主意,但我只是想尽可能容易地测试这个概念。

是否可以同时与现场的多个标签通讯?我究竟做错了什么?

你想要的是不幸的是现在不可能,除非你做了一些相当先进的黑客,这几乎从来不是一个好主意:)

如果您在收发()中发送正确的字节,您可能会暂停该卡,就像您现在想要做的那样。但是由于停止(或者说您尝试发送的HLTA)是ISO14443-3A命令,因此使用“加密”管道的MifareClassic接口将无法正常工作。不幸地,通过NfcA接口直接传输也不能与当前堆栈一起使用。

即使您可以停止卡,这不会自动导致手机中的NFC芯片恢复轮询新的标签 – 因为您正在“走遍”堆叠。

http://stackoverflow.com/questions/5287696/reading-multiple-nfc-tags-simultaneously-in-android

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:java – 在Android中同时读取多个NFC标签