谁能解释一下,为什么Android应用程序支持的标记技术既要以编程方式声明,也要在XML文件中声明?到目前为止,我看到的所有示例都是这样的。看一下这个教程的例子:http://mifareclassicdetectiononandroid.blogspot.com/2011/04/reading-mifare-classic-1k-from-android.html
代码:
mTechLists = new String[][] { new String[] { MifareClassic.class.getName() } };XML文件:
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<tech-list>
<tech>android.nfc.tech.NfcA</tech>
<tech>android.nfc.tech.MifareClassic</tech>
</tech-list>
</resources> 发布于 2011-09-02 12:40:27
他们实现了不同的目标。您在XML文件中指定的技术可用作活动的意图过滤器。也就是说,如果过滤器匹配,您的活动将启动。但是,可能有更多的活动与过滤器匹配,在这种情况下,用户将需要选择一个应用程序来处理标记。
您使用enableForegroundDispatch()以编程方式设置的技术可用于绕过其他应用程序;如果您的活动在前台,您可以告诉NFC服务将与过滤器匹配的所有NFC标记发送到您的活动。因此,即使另一个活动具有完全相同的过滤器,应用程序选择器也不会出现,而意图将直接转到您的活动。
在大多数应用程序中,你会想要这两个-如果每当你扫描应用程序中的标签时出现活动选择器,这是很烦人的。但要确保过滤器的准确性--不要过滤掉你不感兴趣的东西。
https://stackoverflow.com/questions/7262332
复制相似问题