Android Intent-filter 动作名称与数据方案

Posted

技术标签:

【中文标题】Android Intent-filter 动作名称与数据方案【英文标题】:Android Intent-filter action name vs data scheme 【发布时间】:2021-09-15 06:16:48 【问题描述】:

<intent-filter> 中,当可以指定其他应用可以使用的自定义操作名称时,指定<data android:scheme=""> 有什么好处?

例如

<activity android:name=".MyActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="foobar" />
    </intent-filter>
</activity>
    <activity android:name=".MyActivity">
        <intent-filter>
            <action android:name="com.example.myapp.FOOBAR" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

指定foobar 方案能给我带来什么好处?其他应用也可以通过将com.example.myapp.FOOBAR 指定为 Intent 操作来启动我的活动,并且可以在 Intent extras 中发送数据。

我知道指定方案建立了其他应用程序必须使用该方案的合同。但是我还有什么遗漏的吗?

【问题讨论】:

【参考方案1】:

如果没有为意图过滤器指定 scheme,则忽略所有其他 URI 属性。这就是你缺少的基本点。

【讨论】:

以上是关于Android Intent-filter 动作名称与数据方案的主要内容,如果未能解决你的问题,请参考以下文章

Android:Intent-Filter 和后台网页

android基础:Intents 和 intent-filter 的匹配规则

android基础:Intents 和 intent-filter 的匹配规则

行为变更 | 了解 Android 12 中的 intent-filter

行为变更 | 了解 Android 12 中的 intent-filter

android intent-filter 注册网页链接打开app