2013-02-14 44 views
1

檢測到空標籤時出現問題。我的意思是空標記是一個帶有NdefRecord.TNF_EMPTY類型記錄的Ndef標記。我的應用程序是與所有標籤一起發佈的,但是我遇到了這類內容的麻煩。當NFC空標籤被檢測到時,Android應用程序未啓動

<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> 

我想這是因爲正確地檢測NDEF標籤,反正我techlist是techlist是沒有問題的這

<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

您遺漏了您的techlist片段中正在關閉的''標記。但它存在於你的techlist xml文件中,對嗎? – martijno 2013-02-15 14:21:05

回答

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" /> 

剛取出標籤「元數據」的問題有已經解決了,但爲什麼?

+0

因爲[']的定義不允許有''元素。 – 2013-02-15 14:38:27

+1

好的,非常感謝NFC人員,無論如何編譯器應該說些什麼,如果意圖過濾器內不允許元數據標籤。 – Tx33 2013-02-18 09:21:02

+0

可能不是直接編譯器,但是一個Lint警告將是一個有價值的提示。 – 2013-02-18 15:23:35

相關問題