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基础:Intents 和 intent-filter 的匹配规则
android基础:Intents 和 intent-filter 的匹配规则
行为变更 | 了解 Android 12 中的 intent-filter