你能根据查询创建一个intent过滤器吗?

时间:2012-05-02 16:35:44

标签: java android android-intent

我想让我的应用程序响应我的应用程序的市场链接。所以链接是market:// details?id = my.package.name。现在我想要这个的原因是我可以发送一个链接,如果安装了应用程序将打开应用程序,如果未安装应用程序则打开市场页面。我遇到的问题是我的应用程序将响应所有市场链接而不仅仅是我的应用程序链接。原因是包名称在Uri的查询部分中定义。有没有办法根据Uri的查询部分过滤意图?

2 个答案:

答案 0 :(得分:6)

不,对不起,你不能。您可以根据?左侧的所有内容约束过滤器,但就是这样。

答案 1 :(得分:6)

在Android API 19中,您可以使用sspsspPrefixsspPattern来执行此操作。例如:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data
        android:scheme="https"
        android:sspPrefix="//play.google.com/store/apps/details?id=com.example.test"
    />
</intent-filter>

使用此类过滤器,操作系统仅为具有id=com.example.test参数的网址提供您的应用,并且在没有此类参数时不会提供该应用。但这仅适用于Android 4.4及更高版本,旧版本将忽略sspPrefix

另见本文:https://chris.orr.me.uk/android-ssp-data-intent-filter/