避免在活动中检测到nfc标记

时间:2014-03-19 07:37:27

标签: android android-activity nfc

我有一个要求,其中我的应用程序处理NFC。

我已在清单文件中声明了nfc。

<uses-feature
    android:name="android.hardware.nfc"
    android:required="true"/>

现在,我的问题是,是否可以在特定活动中禁用nfc标记检测。

例如,我有10个活动,我不希望第5个活动检测到nfc。可能吗? 我需要同样的建议。

2 个答案:

答案 0 :(得分:0)

您无法阻止设备检测NFC标签。但是,您可以将活动设置为接收(然后忽略)所有NFC发现事件。

为此,您可以使用NfcAdapter的enableForegroundDispatch()方法在NFC前台调度系统中注册您的活动。这使您的当前活动优先于通过所有其他意图过滤器接收NFC事件。有关如何进行此注册的信息,请参阅Advanced NFC: Using the NFC Foreground Dispatch System

注册前台调度系统后,您的活动将以onNewIntent()方式接收所有NFC意图(或作为待处理的意图结果,具体取决于您的注册方式)。在那里,你可以简单地忽略这些事件。

答案 1 :(得分:0)

当您的活动被破坏或暂停时,您只需简单地称呼此人

 nfcAdapter.disableForegroundDispatch(getActivity());