NFC Mifare Ultralight 读取/写入使用 ACR122 的普通 Java 桌面应用程序

Posted

技术标签:

【中文标题】NFC Mifare Ultralight 读取/写入使用 ACR122 的普通 Java 桌面应用程序【英文标题】:NFC Mifare Ultralight Read/Write for plain Java Desktop app using ACR122 【发布时间】:2015-03-25 08:10:08 【问题描述】:

在查阅了很多关于 *** 的线程后,我仍然没有找到一个在 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 ...)

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

以上是关于NFC Mifare Ultralight 读取/写入使用 ACR122 的普通 Java 桌面应用程序的主要内容,如果未能解决你的问题,请参考以下文章

NFC Mifare Ultralight 读取/写入使用 ACR122 的普通 Java 桌面应用程序

这是哪个NFC标签? nfc-list Mifare Ultralight/Classic 7Byte UID

APDU 更改 Mifare Ultralight C 身份验证

如何使用Nexus 5获取Mifare Ultralight 16位UID读数

.NET - 通过 NFC 阅读器读取 Mifare Classic。恩智浦与博通阅读器

使用 SCL010 获取 Mifare Ultralight 的 UID