gpt4 book ai didi

android - NFC - 如何使用 NDEF_DISCOVERED 启动应用程序

转载 作者:太空狗 更新时间:2023-10-29 12:53:58 26 4
gpt4 key购买 nike

我正在编写一个应该检测 nfc 标签并自动启动的应用程序。我已经通过使用 TECH_DISCOVERED + 过滤器成功地做到了这一点,但我认为更好的方法是使用 NDEF_DISCOVERED。我已将 intent-filter 添加到我的 list 中,但它不起作用。这是我的 TECH_DISCOVERED list 代码,有效:

    <intent-filter>    
<action android:name="android.nfc.action.TECH_DISCOVERED"/>
</intent-filter>
<meta-data android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/nfc_tech_filter" />

当我想尝试 NDEF_DISCOVERED 时,我尝试:

                <intent-filter>    
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain" />

对于标签,我使用了“Mifare classic 1k”标签,该标签使用市场上的 NFC TagInfo 应用编写为“智能海报”。

我做错了什么?或者,还有什么方法可以启动我的应用程序而不显示 Activity 选择对话框?

谢谢,伊兰。

最佳答案

您过滤的是 text/plain 而不是智能海报的 URI。 Android 将智能海报转换为 URI,然后您必须针对该 URI 进行过滤。如果您检查启动的 Intent ,您可以在 logcat 中看到 URI。对于像 http://example.com/file 这样的 URI ,做这样的事情:

<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http"
android:host="example.com"
android:pathPrefix="/file" />
</intent-filter>

有关如何解析 NDEF 消息的更多信息,请参阅 NFC 开发指南。请阅读整个文档以充分了解如何针对正确的 Intent 进行过滤:http://developer.android.com/guide/topics/nfc/nfc.html

关于android - NFC - 如何使用 NDEF_DISCOVERED 启动应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8908586/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com