1

在查阅了有关 stackoverflow 的大量线程后,我仍然没有找到一个工作“示例”,用于在 Java 应用程序中使用 ACS ACR122 Usb 智能卡读卡器读取/写入 MiFare Ultralight 或 Classic NFC 卡......当然,我尝试咨询NXP 或 ACS 的文档,但仍然无法“简单地”读/写数据块。

那里有很多特定于 Android 的库,但没有任何简化 MiFare 通信的普通旧 J2SE 库(使用 javax.smartcardio 和 APDU 命令...)

谁能给我一些真正好的和有用的指示:

  • 对 MiFare Ultralight 和经典使用 APDU 命令
  • (帮我开发)一个 J2SE 库,它消除了发送到卡/从卡发送的所有 HEX 命令的复杂性
  • 这些卡上使用的示例(超轻/经典)...

非常感谢任何帮助。

开发完成:

  • ACS acr122U NFC 读卡器
  • 使用 PC/SC lite 库的 Linux 平台
  • MiFare Ultralight 和 Classic 1K/4K 7UID 卡
  • Java SDK 1.6+ 及更高版本
  • 带有 NFC 的 Android 4.4.x 手机(例如 Huwawei ...)
4

1 回答 1

1

我编写了一个小型 Java (1.7+) 程序来使用 ACS ACR122U 转储(和写入)MiFare Classic 1K 标签。它在 GitHub 上可用。在引擎盖下,它使用一个普通的旧 J2SE 库,称为NFCTools

NFCTools 通过管理所有十六进制/APDU 内容来帮助您与 NFC 卡进行通信。它带有许多例子。但是我不知道主要开发人员是否还想维护它。例如,为了重构对 Mifare 的支持,他将许多 Mifare 类标记为已弃用,但它仍然是一项正在进行2 年的工作。从邮件列表

我首先编写了对 mifare 经典卡的支持,似乎使用这些类来描述内存区域是个好主意。但是,当我想添加对超轻标签的支持时,上述类将不起作用。使用超轻标签,我决定使用一种新方法并创建一个 org.nfctools.mf.ul.MemoryLayout 类。我认为这是要走的路,所以我将 MfCard 类标记为已弃用。

尽管处于这种中间状态,但它支持许多阅读器和标签格式。这些例子非常有用。然后,如果您有一些特定的要求,我建议您为这个项目做出贡献或分叉它。

于 2015-04-10T11:43:51.000 回答