欢迎参加我们将于 6 月 3 日举行的 #Android11:Beta 版发布会

<grant-uri-permission>

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

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

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

属性:
android:path
android:pathPrefix
android:pathPattern
标识可向其授予权限的一个或多个数据子集的路径。path 属性指定完整路径;只能授予对由该路径标识的特定数据子集的相应权限。pathPrefix 属性指定路径的初始部分;可以授予对路径共有该初始部分的所有数据子集的相应权限。pathPattern 属性指定完整路径,但可以包含以下通配符:
  • 星号(“*”)匹配出现零次到多次的紧邻前面的字符的一个序列。
  • 后跟星号的句点(“.*”)匹配零个或多个字符的任意序列。

由于在从 XML 读取字符串时(在将其解析为模式之前)将“\”用作转义字符,因此您需要进行双重转义:例如,字面量“*”将编写为“\\*”,字面量“”将编写为“\\\\”。这基本上与采用 Java 代码构造字符串时需要编写的内容一样。

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

引入于:
API 级别 1
另请参阅:
the grantUriPermissions attribute of the <provider> element