我已经在 Nexus S 上安装了NXP TagWriter和NFC TagInfo,这是用于我的 NFC 应用程序开发的同一设备。问题是我的应用程序在读取标签后没有显示在“使用完成操作”对话框中,只有从市场安装的两个都是。调试了一段时间后,我尝试使用演示应用程序,结果是一样的。我在这里想念什么?是否必须从市场上安装应用程序才能正确解析意图过滤器?
更新
我的意图过滤器很简单
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
我已经尝试按照手册中的说明,一一添加以及全部添加其他内容,但均未成功。它可能与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>