我已经在活动清单文件中声明了必需的意图筛选器。
场景1:当我用NFCDemo,安卓样例应用,->,->,广泛的nfc标签,->测试的时候,我的应用程序在选择对话框中被提示,就像其他nfc应用一样,NFC标签信息和NXP标签信息。
场景2:在刷过真正的NFC标签(卡) -> NFC TagInfo后,TagInfo应用程序会在chooser对话框中被提示,但我的应用程序没有。
我的要求->我的应用程序也应该显示像NFC标签信息应用程序。更多的信息->这是一张空卡!
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</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/supporting_nfc_techlist" />
发布于 2014-10-16 07:14:38
只有当NDEF_DISCOVERED
标记包含与筛选器匹配的NDEF消息时,才会触发NFC意图筛选器。您通常应该为特定的记录类型指定一个过滤器(例如,对于特定的MIME类型、特定的NFC外部类型名称或特定的URI(-prefix))。对"*/*“使用MIME类型筛选器将无法在某些设备上工作。
通常不应在应用程序清单中使用TAG_DISCOVERED
意图筛选器。在目前的Android版本中,它主要用于前台调度系统,如果没有为任何标记发现事件注册其他活动,则作为退步。
TECH_DISCOVERED
意图过滤器将过滤那些在supporting_nfc_techlist.xml文件中定义的标记技术。例如,如果要检测任何标记,可以使用如下过滤器:
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<tech-list>
<tech>android.nfc.tech.NfcA</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NfcB</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NfcF</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NfcV</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.IsoDep</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.MifareClassic</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.MifareUltralight</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NdefFormatable</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.Ndef</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NfcBarcode</tech>
</tech-list>
</resources>
请注意,Android文档中的示例具有误导性。技术列表与逻辑或合并,而技术条目在一个技术列表中与逻辑和.因此,
<tech-list>
<tech>android.nfc.tech.NfcA</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NfcB</tech>
</tech-list>
表示NfcA
或 NfcB
,而
<tech-list>
<tech>android.nfc.tech.NfcA</tech>
<tech>android.nfc.tech.NfcB</tech>
</tech-list>
意味着NfcA
和 NfcB
(不可能以NfcX
(具有X= {A、B、F、V})的技术类型相互排斥)。
https://stackoverflow.com/questions/26388986
复制相似问题