在stackoverflow上咨询了很多线程后,我仍然没有找到一个工作的“示例”,用于在Java应用程序中使用ACS ACR122 Usb智能卡读取器读取/写入MiFare Ultralight或Classic NFC卡...当然,我试图查阅恩智浦或ACS的文档,但仍然没有设法“简单地”读/写数据块。
有很多特定于Android的库,但没有任何简化MiFare通信的普通旧J2SE库(使用javax.smartcardio和APDU命令......)
任何人都可以给我一些真正好的和有用的指示:
任何帮助都非常适合。
开发完成:
答案 0 :(得分:1)
我写了一个小型Java(1.7+)程序,使用ACS ACR122U转储(并写入)MiFare Classic 1K标签。它可用on GitHub。在引擎盖下,它使用一个名为NFCTools的普通旧J2SE库。
NFCTools通过管理所有十六进制/ APDU内容,帮助您与NFC卡进行通信。它附带numerous examples。但是,我不知道主要开发者是否还想维护它。例如,为了重构Mifare支持,他将许多Mifare类标记为已弃用,但它现在仍然是正在进行的工作 2年。 From the mailing list:
我首先写了对mifare经典卡的支持,它似乎是 使用这些类来描述内存区域是一个好主意。 但是,当我想在上面添加对超轻型标签的支持时 课程不起作用。随着超轻型标签我决定使用 新方法并创建一个org.nfctools.mf.ul.MemoryLayout类。一世 认为这是要走的路,所以我把MfCard课程标记为 弃用。
尽管有这种中间状态,但它支持许多读者和标记格式。这些例子非常有用。然后,如果您有一些特定要求,我建议您为此项目做出贡献或分叉。