- 语法
- 如果 data 标签是 <intent-filter>的直接子项
 <data android:scheme="string" android:host="string" android:port="string" android:path="string" android:pathPattern="string" android:pathPrefix="string" android:pathSuffix="string" android:pathAdvancedPattern="string" android:mimeType="string" /> 
 如果 data 标签是<uri-relative-filter-group>的直接子项
 <data android:path="string" android:pathPattern="string" android:pathPrefix="string" android:pathSuffix="string" android:pathAdvancedPattern="string" android:fragment="string" android:fragmentPattern="string" android:fragmentPrefix="string" android:fragmentSuffix="string" android:fragmentAdvancedPattern="string" android:query="string" android:queryPattern="string" android:queryPrefix="string" android:querySuffix="string" android:queryAdvancedPattern="string" /> 
- 包含于
- 
  <intent-filter><uri-relative-filter-group>
- 说明
- 向 intent 过滤器添加数据规范。该规范是数据类型(使用 mimeType属性)、URI,或同时包含数据类型和 URI。URI 通过各自的部分的单独属性指定<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]这些指定 URI 格式的属性是可选的,但也相互依赖 同一 <intent-filter>元素中包含的所有<data>元素都构成同一个过滤器。例如,以下过滤器规范<intent-filter . . . > <data android:scheme="something" android:host="project1.example.com" /> <data android:scheme="something-else" android:host="project2.example.com" android:path="/page1" /> ... </intent-filter> 等效于此 <intent-filter . . . > <data android:scheme="something" /> <data android:scheme="something-else" /> <data android:host="project1.example.com" /> <data android:host="project2.example.com" /> <data android:path="/page1" /> ... </intent-filter> 您可以在 <intent-filter>中放置任意数量的<data>元素,以提供多个数据选项。它的所有属性都没有默认值。有关 intent 过滤器如何工作的信息,包括 intent 对象与过滤器匹配的规则,请参阅“Intent 和 Intent 过滤器”以及清单文件概览中的“Intent 过滤器”部分。 
- 属性
- android:scheme
- URI 的 scheme 部分。这是指定 URI 的最基本属性。过滤器必须至少设置一个 scheme属性,否则其他 URI 属性均无意义。指定 scheme 时不带冒号,例如 http而不是http:。如果过滤器设置了数据类型(使用 mimeType属性)但未设置 scheme,则会假定content:和file:scheme。注意:与 RFC 不同,Android 框架中的 scheme 匹配区分大小写。因此,请始终使用小写字母指定 scheme。 
- android:host
- URI 授权的 host 部分。除非过滤器也指定了 scheme属性,否则此属性没有意义。要匹配多个子域名,请使用星号(*)匹配主机名中零个或多个字符。例如,主机*.google.com匹配www.google.com、.google.com和developer.google.com。星号必须是 host 属性的第一个字符。例如,主机 google.co.*无效,因为星号通配符不是第一个字符。注意:与正式的 RFC 不同,Android 框架中的主机名匹配区分大小写。因此,请始终使用小写字母指定主机名。 
- android:port
- URI 授权的 port 部分。此属性仅在过滤器也指定了 scheme和host属性时有意义。
- android:path- android:pathPrefix- android:pathSuffix- android:pathPattern- android:pathAdvancedPattern
- URI 的 path 部分,必须以 /开头。path属性指定一个完整路径,该路径与Intent对象中的完整路径进行匹配。pathPrefix属性指定一个部分路径,该路径仅与Intent对象中路径的初始部分进行匹配。pathSuffix属性与Intent对象中路径的末尾部分完全匹配,此属性不必以/字符开头。pathPattern属性指定一个完整路径,该路径与Intent对象中的完整路径进行匹配,但它可以包含以下通配符- 句点(.)匹配任何字符。
- 星号(*)匹配紧邻前一个字符的零个或多个出现序列。
- 句点后跟星号(.*)匹配零个或多个字符的任意序列。
 pathAdvancedPattern属性指定一个完整路径,该路径与Intent对象的完整路径进行匹配,并支持以下类似正则表达式的模式- 句点(.)匹配任何字符。
- 集合([...])匹配字符范围。例如,[0-5]匹配 0 到 5 的单个数字,但不匹配 6 到 9。[a-zA-Z]匹配任何字母,不区分大小写。集合还支持“非”(^)修饰符。
- 星号(*)修饰符匹配前一个模式零次或多次。
- 加号(+)修饰符匹配前一个模式一次或多次。
- 范围({...})修饰符指定模式可以匹配的次数。
 pathAdvancedPattern匹配器是一种评估实现,其中匹配是实时针对模式完成的,不支持回溯。因为从 XML 读取字符串时, \用作转义字符,所以在将其解析为模式之前,您需要双重转义。例如,字面量*写为\\*,字面量\写为\\\。这与您在 Java 代码中构造字符串时的写法类似。有关这五种模式类型的更多信息,请参阅 PatternMatcher类中PATTERN_LITERAL、PATTERN_PREFIX、PATTERN_SIMPLE_GLOB、PATTERN_SUFFIX和PATTERN_ADVANCED_GLOB的说明。这些属性仅在过滤器也指定了 scheme和host属性时有意义。pathSuffix和pathAdvancedPattern是在 API 级别 31 中引入的。
- 句点(
- android:fragment- android:fragmentPrefix- android:fragmentSuffix- android:fragmentPattern- android:fragmentAdvancedPattern
- 
  URI 片段的匹配器。不包括 #前缀。每个属性的含义和允许的模式参见上文。要匹配通常进行 URI 编码的字符,请在属性值中包含原始(未编码)形式。例如, <data android:fragment="test!" />匹配#test!和#test%21。在 API 级别 35 中引入。 
- android:query- android:queryPrefix- android:querySuffix- android:queryPattern- android:queryAdvancedPattern
- 
  URI 查询参数(可选包含值)的匹配器。例如,您可以使用 <data android:query="param=value" />匹配以?param=value结尾的 URI。不包括?前缀。每个属性的含义和允许的模式参见上文。要匹配通常进行 URI 编码的字符,请在属性值中包含原始(未编码)形式。例如, <data android:query="test!" />匹配?test!和?test%21。在 API 级别 35 中引入。 
- android:mimeType
- MIME 媒体类型,例如 image/jpeg或audio/mpeg4-generic。子类型可以是星号通配符(*),表示匹配任何子类型。intent 过滤器通常会声明一个仅包含 android:mimeType属性的<data>元素。注意:与正式的 RFC MIME 类型不同,Android 框架中的 MIME 类型匹配区分大小写。因此,请始终使用小写字母指定 MIME 类型。 
 
- 引入于
- API 级别 1
- 另请参阅
- <action>- <category>
<data>
  
  
  此页面上的内容和代码示例受 内容许可 中所述的许可条款约束。Java 和 OpenJDK 是 Oracle 和/或其附属公司的商标或注册商标。
上次更新时间:世界标准时间 2025 年 2 月 20 日。
  
  
    [[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的信息","missingTheInformationINeed","thumb-down"],["过于复杂/步骤过多","tooComplicatedTooManySteps","thumb-down"],["过时","outOfDate","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新时间:世界标准时间 2025 年 2 月 20 日。"],[],[]]
  
            
          