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

时间:2015-03-25 08:10:09

标签: java mifare apdu acr122

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

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

任何人都可以给我一些真正好的和有用的指示:

  • 使用APDU命令进行MiFare Ultralight&经典
  • (帮我开发)一个J2SE库,它消除了发送到卡/从卡发送的所有HEX命令的复杂性
  • 这些卡片上使用的例子(Ultralight / Classic)......

任何帮助都非常适合。

开发完成:

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

1 个答案:

答案 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课程标记为   弃用。

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