📅  最后修改于: 2023-12-03 14:59:16.232000             🧑  作者: Mango
启动器意图过滤器(Intent Filters)是 Android 中用来定义一个组件能应对哪些意图(Intent)的一种机制。启动器意图过滤器通常用于指定活动(Activity)的入口点,也可以用于指定广播接收器(Broadcast Receiver)和服务(Service)的入口点。
在 Android 的清单文件(AndroidManifest.xml)中,可以使用 <activity>、<receiver>、<service>
元素来定义启动器意图过滤器。
以下是一个示例的启动器意图过滤器结构:
<activity android:name=".MainActivity">
<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="http" />
<data android:scheme="https" />
</intent-filter>
</activity>
上述示例将活动 MainActivity 配置为能够处理 android.intent.action.VIEW
类型的意图,并且支持处理 http
和 https
的 URI。
<action>
元素:指定意图的动作类型,如 android.intent.action.VIEW
表示查看操作。一个组件可以支持多个动作类型。<category>
元素:指定意图的类别,如 android.intent.category.DEFAULT
表示普通意图,android.intent.category.BROWSABLE
表示可通过浏览器打开的意图。一个组件可以支持多个类别。<data>
元素:指定数据相关的匹配条件,如 URI 或 MIME 类型。一个组件可以支持多个 <data>
元素。启动器意图过滤器的匹配是通过 Intent 对象中的动作(Action)、类别(Category)和数据(Data)来进行的。
为了匹配一个意图,系统会依次检查所有已安装应用程序的清单文件中的启动器意图过滤器,找到与意图相匹配的过滤器。匹配规则如下:
<data>
元素与发送的意图的数据相匹配,则匹配成功。