nfc 过滤 android,适用于所有类型的Android NFC Intent过滤器

我想创建一个Android应用程序,处理针对所有类别和所有数据类型发现的所有NFC事件,例如NDEF,TECH和TAG.

这些意图过滤器位于我的Android Manifest文件中:

当事件为TAG_DISCOVERED时,此代码有效.

NDEF_DISCOVERED不要调用我的应用程序.

谁能发现我在做什么错?

解决方法:

您的意图过滤器

> TAG_DISCOVERED(在清单中使用时)只有在未针对匹配标签的TECH_DISCOVERED或NDEF_DISCOVERED意向注册任何应用程序时,才会触发.因此,如果您还打算注册您的应用程序以处理所有TECH_DISCOVERED和NDEF_DISCOVERED意图,通常就不需要注册TAG_DISCOVERED.

> NDEF_DISCOVERED意图过滤器需要(在许多平台版本/设备上,在某些情况下是可选的)附加要监听的其他数据类型(请参见).没有诸如NDEF_DISCOVERED的全部意图过滤器这样的东西(尽管您可以通过将TECH_DISCOVERED用于Ndef和NdefFormatable技术来接近它). NDEF_DISCOVERED将仅匹配最特定的意图过滤器.例如,如果您注册以“ http://”开头的所有URL,则任何注册以“ http://www.example.com/”开头的URL的应用程序都将优先于您的应用程序.因此,您需要注册无数种数据类型才能获得高于所有其他应用程序的优先级.

> TECH_DISCOVERED意向过滤器需要您要侦听的标签技术的其他定义(请参见LaurentY的answer).可用技术是android.nfc.tech.*名称空间中的技术,当前:

android.nfc.tech.IsoDep

android.nfc.tech.MifareClassic

android.nfc.tech.MifareUltralight

android.nfc.tech.Ndef

android.nfc.tech.NdefFormatable

android.nfc.tech.NfcA

android.nfc.tech.NfcB

android.nfc.tech.NfcBarcode

android.nfc.tech.NfcF

android.nfc.tech.NfcV

您可以在XML文件中指定它们.例如,要匹配所有NfcA和所有NfcB标签,可以在名为xml / nfc_tech_filter.xml的文件中使用此标签:

android.nfc.tech.NfcA

android.nfc.tech.NfcB

然后,您可以使用< meta-data>附加此XML文件.标签(在< activity>标签内,但在< intent-filter>标签外:

android:resource="@xml/nfc_tech_filter" />

标签:ndef,android,android-intent,nfc,intentfilter

来源: https://codeday.me/bug/20191013/1911050.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值