我希望注册一个应用程序,在检测到NFC标签时启动该应用程序。经过搜索,我发现需要使用
[IntentFilter(new[] { NfcAdapter.ActionTechDiscovered })]
在主活动上。然而,应用程序没有启动(我也没有被提示选择应用程序)。相反,一个通用的标签阅读器打开了。
问题出在哪里?
我希望注册一个应用程序,在检测到NFC标签时启动该应用程序。经过搜索,我发现需要使用
[IntentFilter(new[] { NfcAdapter.ActionTechDiscovered })]
在主活动上。然而,应用程序没有启动(我也没有被提示选择应用程序)。相反,一个通用的标签阅读器打开了。
问题出在哪里?
ActionTechDiscovered
意图过滤器需要一个技术列表,指定标签技术(或它们的组合)来启动您的活动。您可以使用以下方式指定技术列表文件:
[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>
OnResume
,但是我认为此解决方案会关闭并重新启动应用程序,因为会调用OnCreate
,这是否正确?如果是这样,那么这是期望的行为吗? - pikausp