【问题标题】:How is NFC intent filter selection affected by filter details?过滤器详细信息如何影响 NFC 意图过滤器选择?
【发布时间】:2013-07-30 01:11:45
【问题描述】:

假设有两个应用在其 AndroidMenifest.xml 中注册了以下intent-filters。

<intent-filter>
    <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:scheme="http"
        android:host="developer.android.com"
        android:pathPrefix="/index.html" />
</intent-filter>

VS

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

在这种情况下,在两个应用程序之间,哪个 NFC 过滤器有效?

我的最终目标是开发一个应用程序,只有在标签中的url以“http://developer.android.com/index.html”开头时才优先调度标签,否则其他应用程序可以调度其他情况。

【问题讨论】:

    标签: android nfc intentfilter


    【解决方案1】:

    更具体的意图过滤器将优先。因此,具有第一个意图过滤器(包含数据标签的过滤器)的活动将获胜。

    【讨论】:

    • 在这种特定情况下,对于 NDEF 数据没有任何特定过滤器的 NDEF_DISCOVERED 意图过滤器,可能在某些手机上永远不会被触发(例如 Galaxy S3)。
    • 您能解释一下原因吗?您是仅引用 http/https URI 还是引用任何 NDEF 记录?想一想,对于 http/https,您实际上可能是正确的(不仅适用于 S3,而且很可能适用于所有手机),因为 Web 浏览器已经有一个更具体的意图过滤器(一个带有 和一个已注册的 ) 优先于通用的。这是你的意思吗?
    • 我在一些手机中观察到了这种行为(当 S3 刚问世时,我对它持肯定态度)。我认为这是一个错误,因为它与 Nexus 设备上的行为不同。
    猜你喜欢
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    相关资源
    最近更新 更多