Android:卡仿真 - 使用PN532 nfc模块读取ndef消息

时间:2015-05-12 10:02:58

标签: android tags nfc ndef hce

我有一台LG D320n Android手机,elechouse的PN532 nfc模块和Stollmann的NFCPlayer,我可以正确阅读NFC标签。

我从这里测试了一个样本:https://github.com/grundid/host-card-emulation-sample

当我将一个Android设备作为标签阅读时,另一个Android设备作为阅读器,它工作正常。但我无法通过NFCPlayer将Android设备作为PN532阅读器的标签阅读。我希望读者从Android设备上读取NDEF消息作为标签,但NFCPlayer甚至无法识别Android设备。我想我必须在Android方面做一些修改,但我无法弄清楚该怎么做。我想我还没有足够的知识来了解NFC通信和HCE如何工作,即使我读到这个: https://developer.android.com/guide/topics/connectivity/nfc/hce.html

我真的很感激任何可以帮助我理解我在这里失踪的准则。

1 个答案:

答案 0 :(得分:1)

NFCPlayer应该发现grundid example app作为传统标记" (tab" R / W:Legacy")因为它没有实现NDEF抽象层。在该选项卡上,您可以使用模拟智能卡交换PDU(在HCE情况下为APDU)。示例应用程序的有效APDU将是

00 A4 04 00 07 F0010203040506 00

您可以通过在PDU字段中键入并点击" Exch来发送此APDU。 PDU"按钮。请注意,grundid HCE应用程序甚至不实现ISO / IEC 7816-4响应APDU。因此,您可能会遇到一些非接触式智能卡读卡器的麻烦。

如果您希望模拟智能卡被NFCPlayer发现为包含NDEF消息的NFC论坛类型4标签(选项卡" R / W:NDEF"),则需要实施NFC论坛类型4标签操作规范(由NFC Forum定义。该规范定义了如何将数据存储在(仿真的)ISO / IEC 14443-4智能卡上以解释为NDEF标签。作为起点,您可以使用此{ {3}}(但是,该代码的质量和可靠性是值得怀疑的。)这个例子实现了用于存储NDEF数据的智能卡文件系统。