19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpage.title=<grant-uri-permission> 22a1b706ec11e53689a2f86cc8e558e74591b462aScott Mainparent.title=The AndroidManifest.xml File 32a1b706ec11e53689a2f86cc8e558e74591b462aScott Mainparent.link=manifest-intro.html 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project@jd:body 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dl class="xml"> 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dt>syntax:</dt> 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dd><pre class="stx"><grant-uri-permission android:<a href="#path">path</a>="<i>string</i>" 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android:<a href="#path">pathPattern</a>="<i>string</i>" 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android:<a href="#path">pathPrefix</a>="<i>string</i>" /></pre></dd> 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dt>contained in:</dt> 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dd><code><a href="{@docRoot}guide/topics/manifest/provider-element.html"><provider></a></code></dd> 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dt>description:</dt> 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dd>Specifies which data subsets of the parent content provider permission 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectcan be granted for. Data subsets are indicated by the path part of a 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{@code content:} URI. (The authority part of the URI identifies the 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectcontent provider.) 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectGranting permission is a way of enabling clients of the provider that don't 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectnormally have permission to access its data to overcome that restriction on 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projecta one-time basis. 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<p> 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectIf a content provider's <code><a href="{@docRoot}guide/topics/manifest/provider-element.html#gprmns">grantUriPermissions</a></code> 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectattribute is "{@code true}", permission can be granted for any the data under 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectthe provider's purview. However, if that attribute is "{@code false}", permission 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectcan be granted only to data subsets that are specified by this element. 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectA provider can contain any number of {@code <grant-uri-permission>} elements. 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectEach one can specify only one path (only one of the three possible attributes). 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</p> 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<p> 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectFor information on how permission is granted, see the 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a></code> element's 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<code><a href="{@docRoot}guide/topics/manifest/provider-element.html#gprmsn">grantUriPermissions</a></code> attribute. 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</p></dd> 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dt>attributes:</dt> 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dd><dl class="attr"> 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dt><a name="path"></a>{@code android:path} 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<br/>{@code android:pathPrefix} 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<br/>{@code android:pathPattern}</dt> 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dd>A path identifying the data subset or subsets that permission can be 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectgranted for. The {@code path} attribute specifies a complete path; 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpermission can be granted only to the particular data subset identified 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectby that path. 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectThe {@code pathPrefix} attribute specifies the initial part of a path; 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpermission can be granted to all data subsets with paths that share that 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinitial part. 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectThe {@code pathPattern} attribute specifies a complete path, but one 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectthat can contain the following wildcards: 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<ul> 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<li>An asterisk ('{@code *}') matches a sequence of 0 to many occurrences of 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectthe immediately preceding character.</li> 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<li><p>A period followed by an asterisk ("{@code .*}") matches any sequence of 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project0 to many characters.</p></li> 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</ul> 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<p> 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectBecause '{@code \}' is used as an escape character when the string is read 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectfrom XML (before it is parsed as a pattern), you will need to double-escape: 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectFor example, a literal '{@code *}' would be written as "{@code \\*}" and a 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectliteral '{@code \}' would be written as "{@code \\\\}". This is basically 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectthe same as what you would need to write if constructing the string in Java code. 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</p> 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<p> 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectFor more information on these types of patterns, see the descriptions of 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{@link android.os.PatternMatcher#PATTERN_LITERAL}, 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{@link android.os.PatternMatcher#PATTERN_PREFIX}, and 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{@link android.os.PatternMatcher#PATTERN_SIMPLE_GLOB} in the 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{@link android.os.PatternMatcher} class. 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</p></dd> 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</dl></dd> 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 799c3209db78bf171f5055baae376f7bdfdfba4a9fDirk Dougherty<!-- ##api level indication## --> 809c3209db78bf171f5055baae376f7bdfdfba4a9fDirk Dougherty<dt>introduced in:</dt> 819c3209db78bf171f5055baae376f7bdfdfba4a9fDirk Dougherty<dd>API Level 1</dd> 829c3209db78bf171f5055baae376f7bdfdfba4a9fDirk Dougherty 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dt>see also:</dt> 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dd>the 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<code><a href="{@docRoot}guide/topics/manifest/provider-element.html#gprmns">grantUriPermissions</a></code> 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectattribute of the 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<code><a href="{@docRoot}guide/topics/manifest/provider-element.html"><provider></a></code> 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectelement</dd> 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</dl> 92