如何读取已连接到设备的NFC标签

时间:2016-05-02 11:52:45

标签: android android-intent tags nfc

我的要求是阅读已连接到设备的NFC标签。

我在申请中发现了以下内容:

NFC标签已经连接到设备,NFC已关闭。当我启动我的Android应用程序时,它会要求打开NFC,在打开NFC后,我的应用程序将读取已连接到设备的NFC标签。

NFC标签已经连接到设备并且NFC已打开。当我手动启动我的应用程序时,它将无法检测到NFC标签。

为什么在后一种情况下应用程序未检测到NFC标签?在启动应用程序(手动)之前,有没有办法检测并读取已连接到设备的标签?

1 个答案:

答案 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修改可能不包含此错误/功能。