在我的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会忽略它?
你能帮帮我吗?最诚挚的问候, 雨果。
答案 0 :(得分:1)
您需要将此添加到您的意图过滤器:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
</intent-filter>
扫描标签时,Android应显示一个弹出窗口,询问应对哪个应用程序进行处理。
根据评论中的其他信息,问题在于您的代码包含Android识别的信息。在这种情况下,这是一个URL。由于Android可以找到可以处理网址的应用程序(默认NFC应用程序),因此该应用程序将优先被调用而不是简单处理标记发现的应用程序。仅当没有其他意图过滤器与标记匹配时,才会调度标记发现。引用文档:
android.nfc.action.TAG_DISCOVERED: 如果没有活动,则此意图开始 处理NDEF_DISCOVERED和 TECH_DISCOVERED意图或标签 被扫描的是未知的。
因此,您必须声明标记以处理标记中的消息。 您还需要准确指定所定位的数据类型(在本例中为网址),否则Google Android应用仍将优先用于网址。您可以阅读有关{{的更多信息3}}
答案 1 :(得分:1)
您还必须在intent过滤器中添加数据。请参阅http://developer.android.com/guide/topics/nfc/nfc.html#tech-disc
并在过滤NFC意图的ACTION_NDEF_DISCOVERED下查看。