我有一个可扫描NFC标签,从标签收集数据并将该数据发送到服务器的应用程序.标签上的数据采用以下格式:
1,3,30012,somebodys name
这些标签放置在客户的房屋中,以供护理人员扫描.每次扫描会将它们记录到呼叫中.
到目前为止,这一直很好.我现在遇到的问题是,护理人员必须在我们的应用程序旁边使用另一个应用程序,该应用程序扫描带有不同数据的NFC标签,并将其发送到其他服务器.该应用程序安装在同一护理人员的电话上.
此其他应用程序将以以下格式扫描可能带有数据的NFC标签:
abc|123??
问题是我该如何确保护理人员扫描我们的标签时仅启动我们的应用程序?
在清单中是否有办法在我的应用的intent-filters中指定它?
这就是我的活动清单中的内容.我了解,如果启动了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?然后,您可以为自定义网址创建过滤器:
<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标签扫描仅触发我的应用程序启动全部内容,希望文章能够帮你解决android-NFC标签扫描仅触发我的应用程序启动所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)