如何在特定屏幕(活动或片段)中禁用NFC?

时间:2019-07-02 09:16:57

标签: android nfc

我在打开Complete action using弹出窗口时遇到问题。当我检测到NFC时。我像这样在清单中设置活动:

<action android:name="android.nfc.action.TECH_DISCOVERED" />
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<action android:name="android.nfc.action.TAG_DISCOVERED" />

并在MainMactivity中使用NfcAdapter。但是,由于我编写的程序,这似乎没有发生。因此,我一一删除。并经过测试。现在,我删除了与manifexts.xml相关的NFC的所有代码和设置。

但是,它仍在工作。我将其称为outer NFC,它在任何地方都有效。如何关闭它?还是避免?我什至不想要它的声音或振动。我不希望它起作用。

但是,我希望它在特定片段中处于活动状态。可以这样表现吗?

1 个答案:

答案 0 :(得分:0)

  

如何关闭它?还是避免?

您需要从主线程调用此方法以禁用负责扫描和读取NFC标签的系统级NFC实现> android.nfc.NfcAdapter#enableForegroundDispatch();它将控制扫描和读取/写入NFC标签到您的片段/活动。

  

我希望它在特定片段中处于活动状态。是否有可能   会这样吗?

上述方法将为您实现这一目标。

离开应用程序时,需要通过调用android.nfc.NfcAdapter#disableForegroundDispatch()再次禁用前台调度(刚刚为应用程序启用)。

更好的方法是将这些方法调用挂接到片段/活动的onResume()onPause()中。