Android:如何更改NFC协议优先级?

时间:2013-12-29 03:01:26

标签: android nfc nexus-7 nfc-p2p hce

我有自己的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光束?

1 个答案:

答案 0 :(得分:4)

该解决方案仅适用于Android 4.4 Kitkat(可用于Nexus 7)。您需要使用enableReaderMode()启用所谓的“阅读器模式”,该模式旨在处理此特定情况。

  

在此模式下,NFC控制器仅用作NFC标签读取器/写入器,从而禁用此设备上NFC适配器的任何对等(Android Beam)和卡仿真模式。 [...]为了与使用Android基于主机的卡片仿真在其他Android设备上模拟的标签进行交互,建议的标记为FLAG_READER_NFC_AFLAG_READER_SKIP_NDEF_CHECK