android开发者指南说
活动应该注册最具体的意图过滤器,以避免活动选择器对话框,这可能会在用户与屏幕交互时破坏与标签的交互。
我正在开发一个应该只选择他的 MIME 类型的应用程序,并且不会显示任何活动选择器非常重要,但我想知道:如果在同一设备中有一个通用的 NFC 阅读器应用程序会发生什么?会显示活动选择器还是我的应用程序刚刚启动?
android开发者指南说
活动应该注册最具体的意图过滤器,以避免活动选择器对话框,这可能会在用户与屏幕交互时破坏与标签的交互。
我正在开发一个应该只选择他的 MIME 类型的应用程序,并且不会显示任何活动选择器非常重要,但我想知道:如果在同一设备中有一个通用的 NFC 阅读器应用程序会发生什么?会显示活动选择器还是我的应用程序刚刚启动?
具有与 NDEF 数据匹配的最具体的意图过滤器的应用程序将获胜。因此,如果您注册了一条 MIME 类型为 text/plain 的记录,而另一个活动仅注册了任何 NDEF 数据(android.nfc.action.NDEF_DISCOVERED
没有任何数据规范),您的活动将自动显示。
但是请注意,如果一个活动注册为NDEF_DISCOVERED
+ MIME 类型text/plain
,而第二个活动注册为NDEF_DISCOVERED
+ MIME 类型text/*
,则两个意图过滤器将被视为相等,并且将显示一个活动选择器。
通常,您可能希望 NFC Forum 外部类型优于 MIME 类型,因为这些类型允许您为记录类型指定唯一域。