2

我希望我的 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 类型。)

4

2 回答 2

1

由于这是一个Android Application Record,它会绕过所有过滤器。但是,您可以做的是让您的活动实现前台调度

使用它,您将打开您的活动以拦截您将收到的意图

public void onNewIntent(Intent intent)

使用意图过滤器方法时,这些意图是通过 传递的onResume(),尽管这种情况不同。onNewIntent(Intent intent)当应用程序实际处于活动状态时,当使用 Foreground Dispatch 时,通过传递标签。

当应用程序从其他地方启动时,过滤器类型的标签通过 onResume() 传递。根据标签的不同,intent 会有不同的操作,您可以在Android SDK Docs中阅读所有相关信息。

于 2014-04-09T09:29:24.547 回答
0

也许您可以制作标签以将 URI 记录添加到 NDEF 消息的第一条记录。因为第一条记录是 NDEF 消息的类型。然后你可以使用 URI 意图过滤器。

于 2013-07-12T15:43:59.107 回答