我希望我的Android应用能够对包含蓝牙OOB设置记录的NFC标签做出反应。我的清单包含:
<!-- intent filter for matching an NDEF MIME message. -->
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="application/vnd.bluetooth.ep.oob"/>
</intent-filter>
但是,当我扫描标签时,应用程序无法启动,而是启动蓝牙连接。有没有办法在我的应用程序中处理这些标签? (注意:例如,URI标签的其他意图过滤器可用于启动我的应用程序,因此它可能特定于此MIME类型。)
答案 0 :(得分:1)
由于这是Android Application Record,它会绕过所有过滤器。 但 可以做的是让您的活动实现Foreground Dispatch
使用此功能,您可以打开您的活动,以拦截您将在
中收到的意图public void onNewIntent(Intent intent)
使用意图过滤器方法时,这些意图通过onResume()
传递,尽管这种情况不同。
当应用程序实际处于活动状态时,标签在使用Foreground Dispatch时通过onNewIntent(Intent intent)
传递。
过滤器类型标签通过onResume()传递,因为应用程序是从其他地方启动的。根据标记,意图将有不同的操作,您可以在the Android SDK Docs阅读所有相关内容。
答案 1 :(得分:0)
也许你可以让标签将URI记录添加到NDEF消息的第一条记录中。因为第一条记录是NDEF消息的类型。然后你可以使用URI intent-filter。