我的要求是阅读已连接到设备的NFC标签。
我在申请中发现了以下内容:
NFC标签已经连接到设备,NFC已关闭。当我启动我的Android应用程序时,它会要求打开NFC,在打开NFC后,我的应用程序将读取已连接到设备的NFC标签。
NFC标签已经连接到设备并且NFC已打开。当我手动启动我的应用程序时,它将无法检测到NFC标签。
为什么在后一种情况下应用程序未检测到NFC标签?在启动应用程序(手动)之前,有没有办法检测并读取已连接到设备的标签?
答案 0 :(得分:0)
一般来说,这是不可能的。如果新发现标记(即刚刚点击了标记),Android仅会向应用程序发送标记。因此,当应用程序启动时,应用程序无法访问NFC阅读器领域中已有的标签。
由于Android NFC API不允许在应用内禁用和重新启用NFC功能(这只能通过“设置”应用进行),因此也无法暂时禁用NFC阅读器来欺骗Android检测新标签的标签。
然而,在Android版本&gt; = 4.4和&lt; 5.1(或者是<6.0?)在NFC读取器模式API(enableReaderMode()
的实现中存在一个错误(未记录的功能?),导致在启用读取器模式后重新标记标记。这些Android版本可以使用enableReaderMode()
重新发现已经附加的标签。虽然这在AOSP中有效,但是某些设备制造商特定的Android修改可能不包含此错误/功能。