Android开发-API指南-<data>
2014-12-22 15:29
393 查看
<data>
英文原文:http://developer.android.com/guide/topics/manifest/data-element.html采集(更新)日期:2014-6-30
搬迁自原博客:http://blog.sina.com.cn/s/blog_48d491300101h236.html
语法:
<data android:scheme="string" android:host="string" android:port="string" android:path="string" android:pathPattern="string" android:pathPrefix="string" android:mimeType="string" />
包含于:
<intent-filter>说明:在 Intent 过滤器中加入一个数据项的定义。 此定义可以只有数据类型(
mimeType属性)、 只有URI,也可以既有数据类型又有 URI 。 URI 由多个独立属性组合而成,如下所示:
<scheme> :// <host> : <port> /[ <path> | <pathPrefix> | <pathPattern> ]
这些定义 URL 格式的属性是可选项,但也具有相互依赖性:
如果没有为 Intent 过滤器定义
scheme,则所有其他 URI 属性将被忽略。
如果没有为 Intent 过滤器定义
host,则port属性和所有路径属性都将被忽略。
包含于同一个
<intent-filter>元素内的所有
<data>元素均作用于同一个过滤器。 例如,以下过滤器的定义:
<intent-filter . . . > <data android:scheme="something" android:host="project.example.com" /> . . . </intent-filter>
就等同于以下定义:
<intent-filter . . . > <data android:scheme="something" /> <data android:host="project.example.com" /> . . . </intent-filter>
在一个
<intent-filter>内可以放置任意数量的
<data>元素,以便给出多个数据项。 所有属性都没有默认值。
关于 Intent 过滤器的工作机制,包括 Intent 对象与过滤器的匹配规则,可以查阅另一篇文档 Intent 和 Intent 过滤器 。请参阅 Manifest 概述中的 Intent 过滤器 章节。
属性:
android:schemeURI 的 scheme 部分。 这是定义一个 URI 至少必须具备的属性,否则其他 URI 属性都没有意义。
scheme 请不要以冒号结尾(比如应为
http,而不是
http:)。
如果过滤器定义了数据类型(
mimeType属性),但没有定义 scheme , 则系统假定使用
content:和
file:类型的 scheme 。
注意: 与 RFC 不同,符合 Android 平台要求的 scheme 类型是大小写敏感的。 因此,请确保使用小写字母来指定 scheme 类型。
android:hostURI 的主机名部分。 只有同时为过滤器指定了
scheme属性后,本属性才有意义。
注意: 与通常的 RFC 不同,符合 Android 平台要求的主机名是大小写敏感的。 因此,请确保用小写字母指定 host 。
android:portURI 的端口部分。 只有同时为过滤器指定了
scheme和
host属性后,本属性才有意义。
android:path
android:pathPrefix
android:pathPattern
URI的路径部分。
path属性定义了匹配 Intent 对象的完整路径。
pathPrefix属性定义了匹配 Intent 对象路径的起始部分。
pathPattern属性定义了匹配 Intent 对象的完整路径,只是可包含以下通配符:
用星号(“*”)匹配紧随其前的字符的0次或多次出现。
句点后跟星号(“.*”)匹配任何字符的0次或多次出现。
在从 XML 读取字符串时(在作为表达式被解析以前),“\”被用作了转义字符,
因此需要进行二次转义:比如,“
*”应写成 "
\\*" ,“
\”应写成 "
\\\\" 。
这基本上和 Java 代码里构造字符串的写法相同。
关于这三种表达式的更多信息,请参阅
PatternMatcher
类中的
PATTERN_LITERAL、
PATTERN_PREFIX和
PATTERN_SIMPLE_GLOB
的说明。
仅当过滤器的
scheme和
host属性都已定义时,这些属性才有意义。
android:mimeType
MIME多媒体类型,比如
image/jpeg或
audio/mpeg4-generic。
子类型可以是通配符星号(
*),这表示可匹配任意子类型。
Intent 过滤器常常会声明一个仅包含
android:mimeType属性的
<data>。
注意:
注意:与通常的 RFC MIME 类型不同,符合 Android 平台要求的 MIME 类型是大小写敏感的。
因此请确保用小写字母指定 MIME 类型。
引入自:API 级别 1参阅:
<action>
<category>
相关文章推荐
- Android开发-API指南-<data>
- Android开发-API指南-<meta-data>
- Android开发-API指南-<meta-data>
- Android开发-API指南-<application>
- Android开发-API指南-<instrumentation >
- Android开发-API指南-<uses-library>
- Android开发-API指南-<receiver>
- Android开发-API指南-<activity-alias>
- Android开发-API指南-<action>
- Android开发-API指南-<activity-alias>[原创译文]
- Android开发-API指南-<supports-gl-texture>
- Android开发-API指南-<permission>
- Android开发-API指南-<intent-filter>
- Android开发-API指南-<receiver>
- Android开发-API指南-<permission-group>
- Android开发-API指南-<supports-screens>
- Android开发-API指南-<path-permission>
- Android开发-API指南-<grant-uri-permission>
- Android开发-API指南-<provider>
- Android开发-API指南-<uses-sdk>