<grant-uri-permission>

语法:
<grant-uri-permission android:path="string"
                      android:pathPattern="string"
                      android:pathPrefix="string" />
包含于:
<provider>
说明:
指定父 content provider 有权访问的应用数据的子集。数据子集由 content: URI 的路径部分指示。URI 的权威部分标识 content provider。通过授予权限,可以使通常无权访问其数据的提供程序的客户端能够一次克服该限制。

如果 content provider 的 grantUriPermissions 属性为 true,则可以为提供程序权限下的任何数据授予权限。不过,如果该属性为 false,则只能向此元素指定的数据子集授予权限。提供程序可以包含任意数量的 <grant-uri-permission> 元素。每个元素只能指定一个路径,使用三个可能属性中的一个。

如需了解权限是如何授予的,请参阅 <intent-filter> 元素的 grantUriPermissions 属性。

属性:
android:path
android:pathPrefix
android:pathPattern
标识可向其授予权限的一个或多个数据子集的路径。path 属性指定完整路径。只能授予对由该路径标识的特定数据子集的相应权限。

pathPrefix 属性用于指定路径的初始部分。可以授予对路径共有此初始部分的所有数据子集的相应权限。pathPattern 属性指定完整路径,但可以包含以下通配符:

  • 星号 (*) 匹配由前面紧挨字符的零到多个重复项所组成的序列。
  • 英文句点后跟星号 (.*) 匹配由零到多个字符构成的任意序列。

由于在从 XML 读取字符串时(在将其解析为模式之前)将 \ 用作转义字符,因此您需要进行双重转义。例如,字面量 * 编写为 \\*,字面量 \ 编写为 \\\

如需详细了解这些类型的模式,请参阅 PatternMatcher 类中的 PATTERN_LITERALPATTERN_PREFIXPATTERN_SIMPLE_GLOB 的说明。

引入于:
API 级别 1
另请参阅:
<provider> 元素的 grantUriPermissions 属性