0

我正在开发一个支持 NFC 的应用程序。今天,我的清单中有一个意图过滤器,用于处理具有 NDEF 记录的 NFC“碰撞”:

<intent-filter>
  <action android:name="android.nfc.action.NDEF_DISCOVERED" />
  <category android:name="android.intent.category.DEFAULT" />
  <data android:scheme="wifi" />
  <data android:scheme="socket" />
</intent-filter>

这工作得很好。

该应用程序具有“选择项目”活动和“查看”活动。正如目前所写,意图是在我的“选择一个项目”活动的上下文中处理的。但是,当应用程序处于“视图”活动中时,我希望“视图”处理任何 NFC 意图而不是“选择项目”活动。当“查看”活动不再在堆栈上时,我希望任何 NFC“碰撞”再次由“选择项目”活动处理。

发生这种情况的正确/最佳方法是什么?另请注意,在这种情况下,我不希望看到“哪个应用程序/活动”选择器弹出,因为这会使体验特别乏味和混乱。

4

1 回答 1

1

当您的活动(“查看”或“选择项目”)在前台时,您可以使用前台调度来检测新标签。请参阅 NfcAdapter 的enableForegroundDispatch()方法。在前台调度中注册的活动将优先于应用清单中的意图过滤器。

于 2013-09-23T07:38:13.900 回答