gpt4 book ai didi

android - NFC 标签扫描只会触发我的应用程序启动

转载 作者:行者123 更新时间:2023-11-29 17:44:49 24 4
gpt4 key购买 nike

我有一个应用程序可以扫描 NFC 标签,从标签收集数据并将该数据发送到服务器。标签上的数据格式如下:

1,3,30012,somebodys name

这些标签放置在客户家中,供护理人员扫描。每次扫描都会将他们记录到一个调用中。

目前为止一切正常。我现在遇到的问题是,护理人员必须在我们的应用程序旁边使用另一个应用程序,该应用程序扫描不同的 NFC 标签,上面有不同的数据并将其发送到不同的服务器。此应用程序安装在同一护理人员的手机上。

此其他应用程序将扫描可能包含以下格式数据的 NFC 标签:

abc|123??

问题是我如何确保当护理人员扫描我们的标签时,只有我们的应用程序启动?

有没有办法在我的应用程序的 Intent 过滤器中指定此 list ?

这是我的 Activity list 中的内容。我知道如果启动了一个 Intent 并且有 2 个应用程序可以处理 NFC 标签,则会向用户显示一个列表。 Android 文档不鼓励这样做。

提前致谢。

[编辑]我注意到一件事,如果手机在主屏幕上并且我扫描了一个标签,那么我的应用程序就会启动。如果护理人员扫描了正确的标签,这很好。

<activity android:name=".NfcscannerActivity"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
<intent-filter>
<action android:name="com.carefreegroup.rr3.QRCODE_ACTION" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/nfc_tech_filter" />
</activity>

最佳答案

您可以在 NDEF 消息中创建一个自定义 mimeType,然后创建一个与其完全匹配的 intent-filter。这意味着您的应用将启动,因为它是最具体的过滤器。

例子:

<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/vnd.com.my.app.package.customString" />
</intent-filter>

编辑:或者,如果您不能创建自定义 mimeType,那么也许您的实用程序将创建一个自定义 URL?然后您可以为自定义 url 创建一个过滤器:

<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:scheme="http"
android:host="www.mywebsite.net"
android:path="/customPathForAction" />
</intent-filter>

关于android - NFC 标签扫描只会触发我的应用程序启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27397621/

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