AndroidManifest.xml清单文件详解--data节点

本文详细介绍了AndroidManifest.xml中"data"节点的作用,它用于Intent过滤器,规定数据类型(MIME)和URI。数据包括scheme、host、path等属性,MIME类型匹配大小写敏感,而scheme、host的设置会影响其他属性的有效性。同时,文章提到了路径匹配的三种模式:完整路径、路径前缀和模式通配符,并强调在XML中使用通配符需要转义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、关于节点data

这个元素用于把数据规范添加到一个Intent过滤器中,数据规范能够只是数据类型(mimeType属性)、或数据位置标识(URI),也可以是数据类型和数据位置标识(URI)。一个URI(如下格式)被分成几个独立的属性来分别指定:

scheme://host:port/path or pathPrefix or pathPattern

 

这些属性是可选的,但也是相互依赖的。如果没有给Intent过滤器指定scheme属性,那么所有其他的URI属性都会被忽略。如果没有给过滤器指定host属性,那么port属性和所有的路径属性都会被忽略。

包含在同一个元素中所有的元素只会对这个过滤器起作用,例如:

<intent-filter< span="" style="word-wrap: break-word;"> . . . >
    
<data< span="" style="word-wrap: break-word;"> android:scheme="something" android:host="project.example.com" />
    . . .



二、data节点属性
(1)android:mimeType
(2)android:scheme
(3)android:ssp
(4)android:sspPrefix
(5)android:sspPattern
(6)android:host
(7)android:port
(8)android:path
(9)android:pathPrefix
(10)android:pathPattern


1、android:mimeType属性

这个属性用于设定数据的MIME类型,如:image/jpegaudio/mpeg4-generic。其子类型可用星号通配符(*)来代替,指示能够跟任何子类型匹配。

注意:在Android框架中,MIME类型的匹配是大小写敏感的,跟RFC格式不一样。因此,要始终使用小写字母来指定MIME类型。



2、android:scheme属性

这个属性用于设定URIscheme部分。它是给指定URI设置的最基本的属性,至少要给过滤器设置一个scheme属性,否则,其他的URI属性就没有意义了。

scheme属性值没有”:”符号结尾(如,http,而不是http: )

如果过滤器有一个数据类型(设置了mimeType属性),但没有设置scheme属性,那么系统就会假定schemecontent:file:

注意:在Android框架中,scheme的匹配时大小写敏感的,跟RFC格式不一样。因此,要始终使用小写字母来指定scheme



3、android:ssp属性


4、android:sspPrefix属性


5、android:sspPattern属性


6、android:host属性

这个属性用户定义URI授权的主机部分,除非给过滤器也指定了元素的scheme属性,否则这个属性没有意义。

注意:在Android框架中,主机名的匹配是大小写敏感的,跟RFC格式不一样。因此,要始终使用小写字母来指定主机名。



7、android:port属性
这个属性用于定义 URI 授权的端口部分。只有给过滤器指定了 scheme host 属性时,这个属性才有意义。


8、android:path属性 / android:pathPrefix属性/android:pathPattern属性

这个三个属性用于指定URI的路径部分。Path属性指定一个完整的路径,这个路径会跟Intent对象中的路径进行匹配。PathPrefix属性只指定了部分路径,它会跟Intent对象中的路径初始部分匹配。pathPattern属性指定一个要跟Intent对象中的路径进行匹配的完整路径,但是这个路径中可以包含下列通配符:

1. 星号(*)通配符,路径中的*星号代表任意多个星号之前的那个字符,如a*,可跟aaaaaaaaaa...字符串匹配。

2. 点跟星号的组合(.*)通配符,它可以跟任意字符串进行匹配,如.*html,可以跟abchhtmlchtmlhtmldssf.html等字符串匹配。

因为系统读取XML中的字符串时,会把’\’符号作为强制转义字符,因此就需要两次转义。例如,符号”*”要被写成”\\*”,符号’\’要被写成”\\\\”。这与Java代码中的写法基本相同。

有关这三种模式的更多信息,请看PatternMatcher类中的PATTERN_LITERALPATTERN_PREFIXPATTERN_SIMPLE_GLOB的说明。



、data 节点包含的节点



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值