Android NFC <tech-list> - 问题</tech-list>

时间:2011-07-27 08:30:17

标签: android nfc

id想在android上编写我的第一个NFC应用程序。为此,我使用android开发人员链接:http://developer.android.com/guide/topics/nfc/index.html

这里用于指定支持的技术,您必须创建一个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>

我的问题是,在标签处我得到以下错误:“错误:找到标签技术列表,其中项目是预期的”

我的申请目标是2.3.3。我认为这必须适用于这个目标...

有什么想法吗?

谢谢!

4 个答案:

答案 0 :(得分:6)

我应用的AndroidManifest.xml文件中的片段,用于接收NFC意图的活动

<activity
        android:name=".activity.ClientActivity"
        android:screenOrientation="portrait"
        android:label="@string/app_name"
        android:description="@string/app_name"
        android:icon="@drawable/ttlogo">
        <intent-filter>
            <action
                android:name="android.nfc.action.TECH_DISCOVERED"/>
        </intent-filter>
        <meta-data
            android:resource="@xml/nfc_tech_filter"
            android:name="android.nfc.action.TECH_DISCOVERED" />
        <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.intent.action.VIEW" />
            <category
                android:name="android.intent.category.DEFAULT" />
            <data
                android:scheme="http"
                android:host="www.ttag.be" />
        </intent-filter>
    </activity>

包含过滤器定义的文件位于res / xml / nfc_tech_filter.xml中,看起来像这样

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!--  Touchatag tag -->
<tech-list>
    <tech>android.nfc.tech.NfcA</tech>        
    <tech>android.nfc.tech.Ndef</tech>
    <tech>android.nfc.tech.MifareUltralight</tech>
</tech-list>
<!--  DESFire tag -->
<tech-list>
    <tech>android.nfc.tech.NfcA</tech>        
    <tech>android.nfc.tech.IsoDep</tech>
    <tech>android.nfc.tech.NdefFormatable</tech>
</tech-list>
<!--  Any Tag -->
<tech-list>
    <tech>android.nfc.tech.NfcA</tech>        
</tech-list>

答案 1 :(得分:4)

android SDK doc告诉: 在

 <project-root>/res/xml/ 
文件夹中保存此文件(您可以将其命名)。

所以,您可能将xml文件保存在错误的文件夹中。(您是否将其保存在<project-root>/res/xml/

答案 2 :(得分:2)

将每个<tech>项放在单独的<tech-list>节点中。

答案 3 :(得分:0)

在我的情况下,我必须在xml内创建目录res。 对我来说不太清楚。希望它可以帮到某人。