Android开发-API指南-

Android开发-API指南-<grant-uri-permission>

<grant-uri-permission>

英文原文:http://developer.android.com/guide/topics/manifest/grant-uri-permission-element.html
采集(更新)日期:2014-6-30
搬迁自原博客:http://blog.sina.com.cn/s/blog_48d491300100zmug.html

语法:
<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_LITERALPATTERN_PREFIXPATTERN_SIMPLE_GLOB 的说明。

引入自:
API 级别 1
参阅:
<provider> 元素的 grantUriPermissions 属性。