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

时间:2015-04-24 08:17:41

标签: android nfc nfc-p2p hce android-beam

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

我的应用可以检查当前启用的模式吗?

1 个答案:

答案 0 :(得分:1)

不,您的应用无法检查当前启用的模式。关键在于,默认情况下,Android设备会定期检查所有三种模式(实际上它比这更复杂一点:这三种模式本身被分成几个部分,每个部分轮询某种技术)。因此,当屏幕打开时,您可以期望Android设备在监听其他读取器和轮询不同类型的标签技术和点对点模式设备之间循环切换。无论您是注册通过点对点模式发送消息,是否为HCE注册了应用,或者您的应用注册了NFC发现意图,都是如此。即使您在设置中禁用Android Beam,设备仍将轮询以进行点对点模式。

仅当您使用reader mode API(Android 4.4及更高版本)明确禁用卡片仿真和P2P时,您的应用才能控制只有读取器/写入器模式处于活动状态(并且它可以甚至控制应该轮询哪些标签技术。)

因此,您的应用可以知道它启用了哪些模式,并且可以做一些猜测,例如。

  • 如果屏幕打开且未使用阅读器模式API明确强制读取器/写入器模式,则所有三种模式都可能处于活动状态。
  • 如果屏幕关闭,则只有卡模拟模式可能处于活动状态(尽管这取决于设备,而HCE通常不可用)。
相关问题