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

Posted

技术标签:

【中文标题】.NET - 通过 NFC 阅读器读取 Mifare Classic。恩智浦与博通阅读器【英文标题】:.NET - Reading Mifare Classic by NFC reader. NXP vs Broadcom reader 【发布时间】:2014-08-15 08:47:45 【问题描述】:

问题 [1] 我读到如果您想在 android 下使用 NFC 标签,则不必采用 NDEF 格式。我想在 .Net 中的 Win 8.1 下执行此操作。我的情况是这样的:

我有一张存储有 ID 的 RFID 卡 Mifare Classic 1K。 (由制造商记录)此 ID 由我们的考勤系统通过通常的 RFID 读取器读取(例如 Gigatek 的 PROMAG MFR120) 我们不会在卡上写入任何内容,我们只需要读取 ID。但是我们还需要通过 NFC 阅读器来读取它,这就是问题所在。

我们的卡 Mifare Classic 1K 未格式化为 NDEF 格式,因此它们对于 Broadcom 的 NFC 读卡器是不可见的。 NFC 读卡器只知道一张卡已经到达/离开(.NET 事件 DeviceArrived,DeviceDeparted 被触发)但没有消息到达,因为我们的 NFC 读卡器在当前状态下无法与 Mifare 卡通信。至少博通阅读器不能。 NXP阅读器应该是兼容的,但我没有这样的设备。我说的对吗?

因此,我想在低级别手动读取卡,而不是通过 .NET 类 Proximity,它可能仅用于 NDEF 格式的卡。我希望如果我手动读取卡,我可以读取二进制、字节或字符串格式的所有数据,并以我的方式“解析”它。

这在 .NET 中是否可行,还是我必须将 Mifare 卡重新格式化为 NDEF?恐怕它会停止与当前读者合作。

提前感谢 cmets 和 ide ...

PS:我的设备是联想ThinkPad 10 + Win 8.1 + 平板内置的博通NFC阅读器。

[1]关于Android下NDEF的问题: Do NFC tags have to be NDEF formated?

【问题讨论】:

【参考方案1】:

关于在 .net 中使用邻近 API 读取标签需要了解的一点......制造商 UID 根本不可用。 Broadcom、NXP、NDEF 与否,您无法访问标签 UID。 为了自己解决问题,我最终在发卡时将标签 UID 添加到 NDEF 记录中,以便能够使用 windows 8.x 和 Windows Phone 中的接近 api 访问它。

此外,Lenovo ThinkPad 等设备上的内部阅读器只能通过接近 api 访问,并且没有用于低级 nfc 任务的设施(据我所知)。

如果您确实使用 NDEF 消息格式化标签,我认为您当前的阅读器不会有问题,因为您只阅读制造商 UID,不会通过将 Ndef 消息添加到Mifare 1K,或任何其他标签。

您的假设是正确的,即 Broadcom 芯片组不会读取 Mifare 1K 的内容。不过,您仍然可以获得 UID。

希望这些信息对您有所帮助。

【讨论】:

以上是关于.NET - 通过 NFC 阅读器读取 Mifare Classic。恩智浦与博通阅读器的主要内容,如果未能解决你的问题,请参考以下文章

从 NFC 阅读器直接读取到桌面 Web 应用程序?

NFC阅读器没有在android中连续读取NFC标签

Android 简单 NFC 阅读器应用程序源代码错误。它不会读取任何 nfc 标签?

使用 ACR122 NFC 阅读器读取苹果支付令牌

从 Ionic NFC 插件读取标签提供的信息与我使用阅读器时不同

Windows 8 Phone - 访问 NFC 阅读器?