我在Nexus S上安裝了NXP TagWriter和NFC TagInfo,這是用於我的NFC應用程序開發的相同設備。問題是我的應用程序在標籤讀取後沒有顯示在「完成操作使用」對話框中,只有從市場上安裝都是。調試一段時間後,我嘗試使用demo application,結果是一樣的。我在這裏錯過了什麼?爲了讓意圖過濾器正確解析,必須從市場上安裝應用程序嗎?來自市場的NFC應用覆蓋「完成操作使用」對話條目
更新
我的意圖過濾器只是
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
我曾嘗試加入其他如manual規定,一個接一個,以及一起沒有成功。它可能與MIME類型有關嗎?
當讀取NFC標籤時,只有這兩行與行動有關,而沒有其他內容。
INFO/ActivityManager(111): Starting: Intent { act=android.nfc.action.TECH_DISCOVERED flg=0x10000000 cmp=com.nxp.nfc.tagwriter/.activities.DashboardActivity (has extras) } from pid 197
INFO/ActivityManager(111): Starting: Intent { cmp=com.nxp.nfc.tagwriter/.activities.ConfirmLicenseActivity } from pid 6250
眼看android.nfc.action.TECH_DISCOVERED
被觸發時,我加入了以下意圖過濾器:
<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" />
而且res/xml/nfc_tech_filter.xml
包含
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<tech-list>
<tech>android.nfc.tech.IsoDep</tech>
<tech>android.nfc.tech.NfcA</tech>
<tech>android.nfc.tech.NfcB</tech>
<tech>android.nfc.tech.NfcF</tech>
<tech>android.nfc.tech.NfcV</tech>
<tech>android.nfc.tech.Ndef</tech>
<tech>android.nfc.tech.NdefFormatable</tech>
<tech>android.nfc.tech.MifareClassic</tech>
<tech>android.nfc.tech.MifareUltralight</tech>
</tech-list>
</resources>
聽起來很不自然,但ididn't不足,如果你有你的應用程序沒有安裝其他兩個你提到你的IntentFilter工作? – codeScriber 2011-04-01 09:19:53
正確的,如果安裝了my和NFCDemo,將會顯示My,NFCDemo和Tags對話框,如果安裝了NXP TagWriter或NFC TagInfo,它們會立即運行,甚至不會預安裝標籤。如果兩個市場都已安裝,則它們都列爲選項,但標籤不是。 – 2011-04-01 09:25:22
這確實是有用的,安裝應用程序從市場到從adb或sdcard安裝應用程序應該沒有區別。 關於意圖過濾器,你想捕捉的確切的intnet是什麼/它是一個MIME類型是不同的,tagWriter具有它,但你不會被過濾掉,android給你最好的匹配,可以你是否錯過了ilter參加intnet派對的小小風箏? – codeScriber 2011-04-01 10:12:27