0

在我的 Nexus S 上安装 Android 2.3.4 后,NFC 应用程序不再启动。

我已经尝试了谷歌文档中描述的三个意图(NDEF_DISCOVERED、TECH_DISCOVERED、TAG_DISCOVERED),但是它们中的任何一个都解决了问题,Nexux S 继续打开默认的谷歌应用程序并忽略我的应用程序。

我在清单中有这个

<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED"/>
</intent-filter>

如果我没记错的话,新闻 2.3.3 似乎支持它,为什么 Nexus S 忽略它?

请问你能帮帮我吗。

最好的问候,雨果。

4

2 回答 2

1

您需要将此添加到您的意图过滤器中:

<intent-filter>
   <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
</intent-filter>

扫描标签时,Android 应该显示一个弹出窗口,询问哪个应用程序来处理它。

更新

根据您评论中的其他信息,问题在于您的标签包含 Android 可识别的信息。在这种情况下,这是一个 URL。由于 Android 可以找到可以处理 url 的应用程序(默认 NFC 应用程序),因此该应用程序将优先并被调用,而不是简单处理标签发现的应用程序。仅当没有其他意图过滤器与该标签匹配时,才会调度标签发现。引用文档:

android.nfc.action.TAG_DISCOVERED:如果没有活动处理 NDEF_DISCOVERED 和 TECH_DISCOVERED 意图,或者扫描的标签未知,则此意图启动。

所以你必须声明你的标签来处理标签中的消息。您还需要准确指定要定位的数据类型(在本例中为 url),否则 Google Android 应用程序仍将优先使用 URL。您可以在Android NFC 页面上阅读更多信息

于 2011-05-18T20:05:04.193 回答
1

您还必须在意图过滤器中添加数据。请参考http://developer.android.com/guide/topics/nfc/nfc.html#tech-disc

并在过滤 NFC 意图中的 ACTION_NDEF_DISCOVERED 下查看。

于 2012-02-08T06:50:57.933 回答