语法:
<grant-uri-permission android:path="string"
android:pathPattern="string"
android:pathPrefix="string" />
包含于:<provider>
说明:
指定父 Content Provider 访问权限的哪些子集可被授权。这些子集用 content: 的 path 部分进行标明。(URI 的 authority 部分标明了 Content Provider 。) 这种授权机制向 Content Provider 的客户端提供了一次性越权访问的途径,这里的客户端是指那些正常情况下无权访问该 Content Provider 中数据的客户端。
如果 Content Provider 的 grantUriPermissions 属性值为“true”,则该 Provider 内所有的数据都能被授权访问。可它如果设为“false”,则只有本元素指定的数据子集才能被授权。 一个 Provider 内可以包含任意数量的 < grant-uri-permission > 元素。其中每一个只能指定一条路径(三种可能的属性之一)。
关于如何授权的详细信息,请参阅 < intent-filter > 元素的 grantUriPermissions 属性。
属性:
android:path
android:pathPrefix
android:pathPattern
标明可被授权的一个或多个数据子集的路径部分。 path 属性指定完整路径,只能对该路径指定部分的数据子集进行授权。 pathPrefix属性指定路径的起始部分,只能对那些以此为路径前缀的数据进行授权。 pathPattern属性也指定完整路径,只是可包含以下通配符:
星号(’*’)匹配紧随其前字符的0次或多次出现。
句点加星号(“.*”)匹配任何字符的0次或多次出现。
从 XML 读取字符串时(在作为表达式被解析以前),’\’被用作了转义字符,因此需要进行二次转义:比如,’’ 应写成 “\” ,’\’ 应写成 “\\” 。 这基本上和 Java 代码里构造字符串的写法相同。
关于这三种表达式的更多信息,请参阅 PatternMatcher 类中的 PATTERN_LITERAL、 PATTERN_PREFIX 和 PATTERN_SIMPLE_GLOB 的说明。