我有一个NFC阅读器设备ACS ACR122U,我想通过使用NFC NDEF应用程序从我的android手机发送数据我正在使用三个不同的应用程序:TagWriter、NDEF Tag Emulator和NFC Tools,我写简单的文本,比如我的名字"名称";并将其放在阅读器附近显示https://nfcpy.readthedocs.io/en/latest/examples/tagtool.html#load
当我运行这个代码时,它看起来像这样:
[nfc.clf] searching for reader on path usb
[nfc.clf] using ACS ACR122U PN532v1.6 at usb:001:040
等待标签似乎工作得很好。然后我把手机放在阅读器上,出现以下错误:
[nfc.tag.tt4] ACS ACR122U on usb:001:040 does not support fsd 256
[nfc.tag.tt4] ACS ACR122U on usb:001:040 does not support fsc 256
有人知道为什么会出现错误,而不是显示显示不支持数据的文本吗?
这是不可能的。
对于NFC,存在Initiator
和Target
的概念,初始NFC通信和通信控制必须是Initiator
到Target
,读取器硬件是Initiator
,Target
是NFC标签。
目前,您正试图让和Initiator
使用您正在使用的2个NFC阅读器应用程序(代码(与另一个Initiator
通话,但这不起作用。
幸运的是,如果编程正确,许多(但不是所有(NFC阅读器硬件通常也支持Target
。这通常被称为主机卡仿真(HCE(,或者也有对等模式。
Android支持HCE,但你通常必须编写自己的Android应用程序才能做到这一点(我不知道有现成的应用程序可以做到这一步,但GitHub上有一些例子(,Android支持对等,但它在Android 10 中被删除
在Python方面https://nfcpy.readthedocs.io/en/latest/examples/beam.html对于对等https://nfcpy.readthedocs.io/en/latest/examples/listen.html用于HCE
但您选择的阅读器对Tag模拟或Python代码的对等NFC支持较差https://nfcpy.readthedocs.io/en/latest/overview.html#functional-支持
ACR122U能够做很多这样的事情,但有一些局限性,只是你需要自己在低级别进行编程。