我的应用程序如何找出启用了哪种NFC模式?

我发现Android设备支持三种NFC模式: 读写器P2P卡模拟

我的应用有可能检查当前启用了哪种模式?

Solutions Collecting From Web of "我的应用程序如何找出启用了哪种NFC模式?"

不,您的应用程序无法真正检查当前启用的模式。 重点是,默认情况下,Android设备将定期检查所有三种模式(实际上比这更复杂一点:这三种模式本身被分成几个部分,每个部分都针对某种技术进行轮询)。 所以,当屏幕开启时,您可以期待Android设备在侦听其他阅读器和轮询不同types的标签技术和点对点模式设备之间循环切换。 无论您是通过点对点模式发送消息还是注册HCE应用程序,还是注册了NFC发现意图的应用程序,都是如此。 即使您在设置中禁用了Android Beam,设备仍将继续轮询对等模式。

只有当你使用reader mode API (在Android 4.4+上可用)明确地禁用卡模拟和P2P时,你的应用程序才能控制只有读写器模式处于活动状态(甚至可以控制哪些标签技术应该被轮询)。

所以你的应用程序可以知道它启用自​​己的模式,可以做一些猜测,例如

  • 如果屏幕处于开启状态,并且阅读器/写入器模式未使用阅读器模式API明确强制,则所有三种模式都可能处于活动状态。
  • 如果屏幕closures,则只有卡仿真模式可能处于活动状态(虽然这取决于设备,HCE通常不可用)。