我开发了一个可以使用reader with PN532 chip读取NFC标签的系统。它工作正常。我可以阅读Mifare Classic和Mifare Ultralight标签。
现在,我想使用Android 4.4.2的Nexus平板电脑来模拟标签。我没有Android开发经验,但我认为这是可能的。
我已经在Nexus平板电脑中设置了NFC通信,但我认为我必须下载或编写一些应用程序来模拟标签和NDEF通信。
最简单的方法是什么?
答案 0 :(得分:3)
这取决于您拥有的Nexus平板电脑:
Nexus 7(第一代/ 2012版):该设备使用恩智浦的PN544 NFC控制器。似乎目前无法在这些设备上使用Android 4.4+执行基于主机的卡仿真(请参阅this question和my answer here)。
Nexus 7(第二代/ 2013版)和Nexus 10:这些设备使用Broadcom的NFC控制器。因此,您可以使用Android 4.4的HCE API来模拟非接触式智能卡。
使用Android的HCE API,您将模拟ISO 14443-4智能卡,并且只能使用ISO 7816-4中定义的应用程序选择和APDU格式进行通信。您首先要创建并注册HCE服务(请参阅API guide)。然后,您可以使用服务的processCommandApdu()
方法处理传入的APDU(请参阅this answer)。
如果您的读者端应用程序目前仅处理MIFARE Classic和Ultralight,则必须将其扩展为与基于ISO 14443-4 / APDU的智能卡进行通信。 (在ANdroid的HCE API之上,不能对基于非APDU的卡进行仿真,如MIFARE Classic和Ultralight。)PN532通常会为您处理更大的部分,所以一旦发现这样的智能卡(例如{{1}它应该自动处理ISO 14443-4传输协议,你可以使用InListPassiveTarget
命令直接发送APDU命令。
如果您想通过HCE交换NDEF消息,一旦您启动并运行基于APDU的通信,您就可以在Android HCE中实施NFC论坛的Type 4标签操作规范(从NFC Forum's website获取)用于模拟Type 4 NDEF标记的服务。