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

Bob*_*ke4 9 java android android-intent

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

Com*_*are 6

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


Ana*_*sia 6

从Android的API 19,你可以做到这一点,使用ssp,sspPrefixsspPattern.例:

<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>
Run Code Online (Sandbox Code Playgroud)

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

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