启动NFC标签检测应用

Starting application on NFC tag detection

我想注册一个在检测到 NFC 标签时启动的应用程序。通过搜索我发现我需要使用

[IntentFilter(new[] { NfcAdapter.ActionTechDiscovered })]

主要 activity。但是,该应用程序没有启动(也没有提示我选择应用程序)。相反,通用标签 reader 打开。

问题出在哪里?

ActionTechDiscovered 意图过滤器需要一个技术列表来指定您的 activity 应该启动的标记技术(或它们的组合)。您可以使用以下方式指定技术列表文件:

[IntentFilter (new[]{NfcAdapter.ActionTechDiscovered})]
[MetaData (NfcAdapter.ActionTechDiscovered, Resource="@xml/nfctech")]

然后您需要将文件 "nfctech.xml" 放入文件夹 "Resources/xml"。在此文件中,您可以定义要收听的所有标签技术。例如,要监听任何标记技术,您可以使用:

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <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.NfcBarcode</tech>
    </tech-list>
 </resources>