我有自己的Android应用程序(App A),可以读取和写入NFC标签和ISO-14443 Type A标签。它适用于许多Android设备。
我想将ISO-14443标签的角色赋予我的Nexus5,所以我在我的Nexus5上实现了自己的HCE(主机卡仿真)应用程序(App B)。当我在外部NFC读卡器(使用ISO 14443)上触摸Nexus5时,它可以很好地工作。
然而,当我在Nexus7(运行应用A)上触摸Nexus5(应用B)时,p2p(Android波束)数据交换序列开始。
即使在我关闭两台设备上的Android光束功能后,也没有任何变化。 Nexus7不会显示“触摸到光束”屏幕,但会播放p2p检测声音。
LogCat显示Nexus7尝试建立LLCP连接。
我希望Nexus7专注于检测Nexus5的ISO-14443 HCE,而不是Android光束。
如何更改NFC检测优先级以优先于ISO-14443优于Android光束?
答案 0 :(得分:4)
该解决方案仅适用于Android 4.4 Kitkat(可用于Nexus 7)。您需要使用enableReaderMode()
启用所谓的“阅读器模式”,该模式旨在处理此特定情况。
在此模式下,NFC控制器仅用作NFC标签读取器/写入器,从而禁用此设备上NFC适配器的任何对等(Android Beam)和卡仿真模式。 [...]为了与使用Android基于主机的卡片仿真在其他Android设备上模拟的标签进行交互,建议的标记为
FLAG_READER_NFC_A
和FLAG_READER_SKIP_NDEF_CHECK
。