我在检测空标签时遇到问题。我对空标签的意思是Ndef标签,其记录为NdefRecord.TNF_EMPTY类型。我的应用程序是使用所有标签启动的,但我遇到了这类内容的麻烦。
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
<meta-data android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/techlist" />
</intent-filter>
<intent-filter >
<action android:name="android.nfc.action.TAG_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
我认为techlist不是问题,因为Ndef标签被正确检测到,无论如何我的技术列表是这个
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<tech-list>
<tech>android.nfc.tech.IsoDep</tech>
</tech-list>
<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.Ndef</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NdefFormatable</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.MifareClassic</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.MifareUltralight</tech>
</tech-list>
“NFC任务启动器”和“标签”应用程序能够检测到此类内容。
“TagInfo”应用程序将标记检测为NDEF
Empty record
type: [NULL]
payload length: 0 bytes
感谢。
答案 0 :(得分:1)
经过几个小时测试这个问题我已经解决了,但我不知道为什么会这样。
问题在于AndroidManifest.xml中的这段代码
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
<meta-data android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/techlist" />
</intent-filter>
我已将其更改为
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
</intent-filter>
<meta-data android:name="android.nfc.action.TECH_DISCOVERED" android:resource="@xml/techlist" />
刚拿出标签“元数据”问题已经解决了,但为什么呢?