【问题标题】:After installing Android 2.3.4 on Nexus S, NFC Apps doesn´t start anymore在 Nexus S 上安装 Android 2.3.4 后,NFC 应用程序不再启动
【发布时间】:2011-05-18 18:52:32
【问题描述】:

在我的 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>

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

请你帮帮我。

最好的问候, 雨果。

【问题讨论】:

    标签: android nfc nexus-s


    【解决方案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。 您可以阅读@987654321 上的更多信息@

    【讨论】:

    • 你好codinguser,它不能解决问题,为了确保这不是我的应用程序的问题,我已经编译了NFC Demo(API 10),它具有相同的行为。但我发现了一些东西,它似乎取决于标签类型,如果谷歌应用程序不识别标签类型,它会显示弹出窗口以选择应用程序,但如果它重新启动它并且它包含一个 url,它会打开谷歌应用程序。令人沮丧...你能帮帮我吗?
    • 您需要在清单中声明 android.nfc.action.NDEF_DISCOVERED。请参阅上面我编辑的答案。
    • 最后我在清单中声明了 android.nfc.action.TECH_DISCOVERED 。我尝试使用 android.nfc.action.NDEF_DISCOVERED 没有结果,但也许 android:mimeType 不正确,我正在使用包含 http url 的记录标签进行测试。谢谢。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多