Android nfc意图调度问题

Android nfc意图调度问题,android,nfc,Android,Nfc,我正在尝试使用我的新安卓设备和一个nfc标签,我编写了一个非常简单的应用程序来检测nfc标签。但是,无论我如何尝试,当扫描标签时,我都无法让我的设备启动我的活动。以下是我所拥有的: 最简单的活动: public class NFCIntentDispatch extends Activity{ private TextView mText; public void onCreate(Bundle savedState) { super.onCreate(save

我正在尝试使用我的新安卓设备和一个nfc标签,我编写了一个非常简单的应用程序来检测nfc标签。但是,无论我如何尝试,当扫描标签时,我都无法让我的设备启动我的活动。以下是我所拥有的:

最简单的活动:

public class NFCIntentDispatch extends Activity{
    private TextView mText;

    public void onCreate(Bundle savedState) {
        super.onCreate(savedState);
        setContentView(R.layout.intent_dispatch);
        mText = (TextView) findViewById(R.id.text);
    }
}
和menifest.xml

<activity android:name="NFCIntentDispatch">
    <intent-filter>
        <action android:name="android.nfc.action.TECH_DISCOVERED"/>
        <meta-data android:name="android.nfc.action.TECH_DISCOVERED"
            android:resource="@xml/nfc_tech_filter" />
    </intent-filter>

    <intent-filter>
        <action android:name="android.nfc.action.TAG_DISCOVERED" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>            
</activity>

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>

android.nfc.tech.IsoDep
android.nfc.tech.NfcA
android.nfc.tech.NfcB
android.nfc.tech.NfcF
android.nfc.tech.NfcV
android.nfc.tech.Ndef
android.nfc.tech.n可验证
android.nfc.tech.MifareClassic
android.nfc.tech.MifareUltralight

问题是:


每当扫描标记时,我的设备(Nexus S 2.3.3)仅启动名为“收集新标记”的内置活动,但从不显示“选择或启动我的活动”。知道为什么会这样吗,谢谢你的帮助。

Android文档中关于技术列表的错误,我花了很长时间才弄清楚。 您必须为每个项目打开一个列表,如下所示,才能使其正常工作:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <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>
</resources>

android.nfc.tech.IsoDep
android.nfc.tech.NfcA
android.nfc.tech.NfcB
android.nfc.tech.NfcF
android.nfc.tech.NfcV
android.nfc.tech.Ndef
android.nfc.tech.n可验证
android.nfc.tech.MifareClassic
android.nfc.tech.MifareUltralight

Android文档中关于技术列表的错误,我花了很长时间才弄清楚。 您必须为每个项目打开一个列表,如下所示,才能使其正常工作:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <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>
</resources>

android.nfc.tech.IsoDep
android.nfc.tech.NfcA
android.nfc.tech.NfcB
android.nfc.tech.NfcF
android.nfc.tech.NfcV
android.nfc.tech.Ndef
android.nfc.tech.n可验证
android.nfc.tech.MifareClassic
android.nfc.tech.MifareUltralight

您好,谢谢您的回复,我刚刚更改了技术列表。但这似乎没有帮助。但是,不管技术发现是否有效,它应该仍然有效,而我有标签发现过滤器??你可以检查我为柏林droidcon的NFC游戏创建的。我终于用你的技术发现方法让它工作了。但遗憾的是,标签发现仍然不起作用,我不知道为什么。无论如何,谢谢你的帮助。嗨,谢谢你的回复,我刚刚更改了技术列表。但这似乎没有帮助。但是,不管技术发现是否有效,它应该仍然有效,而我有标签发现过滤器??你可以检查我为柏林droidcon的NFC游戏创建的。我终于用你的技术发现方法让它工作了。但遗憾的是,标签发现仍然不起作用,我不知道为什么。无论如何,谢谢你的帮助。你使用的技术列表查找支持你列出的所有格式的标签。单独列出它们,如下所示,查找第一个标记或下一个标记或下一个标记或。。。等等以上是一个列表。您可以创建标记组,以便更好地识别应用程序支持的标记。您使用的技术列表查找支持您列出的所有格式的标记。单独列出它们,如下所示,查找第一个标记或下一个标记或下一个标记或。。。等等以上是一个列表。您可以创建标记组,以便更好地识别应用程序支持的标记。