- syntax:
<grant-uri-permission android:path="string" android:pathPattern="string" android:pathPrefix="string" />
- contained in:
<provider>
- description:
- Specifies the subsets of app data that the parent content provider
has permission to access. Data subsets are indicated by the path part of a
content:
URI. The authority part of the URI identifies the content provider. Granting permission is a way of enabling clients of the provider that don't normally have permission to access its data to overcome that restriction on a one-time basis.If a content provider's
grantUriPermissions
attribute istrue
, permission can be granted for any of the data under the provider's purview. However, if that attribute isfalse
, permission is granted only to data subsets that are specified by this element. A provider can contain any number of<grant-uri-permission>
elements. Each one can specify only one path, using one of the three possible attributes.For information about how permission is granted, see the
<intent-filter>
element'sgrantUriPermissions
attribute. - attributes:
android:path
android:pathPrefix
android:pathPattern
- A path identifying the data subset or subsets that permission can be
granted for. The
path
attribute specifies a complete path. Permission can granted only to the particular data subset identified by that path.The
pathPrefix
attribute specifies the initial part of a path. Permission can be granted to all data subsets with paths that share that initial part. ThepathPattern
attribute specifies a complete path, but one that can contain the following wildcards:- An asterisk (
*
) matches a sequence of zero to many occurrences of the immediately preceding character. A period followed by an asterisk (
.*
) matches any sequence of zero to many characters.
Because
\
is used as an escape character when the string is read from XML, before it is parsed as a pattern, you need to double-escape. For example, a literal*
is written as\\*
and a literal\
is written as\\\
.For more information about these types of patterns, see the descriptions of
PATTERN_LITERAL
,PATTERN_PREFIX
, andPATTERN_SIMPLE_GLOB
in thePatternMatcher
class. - An asterisk (
- introduced in:
- API level 1
- see also:
-
grantUriPermissions
attribute of the<provider>
element
<grant-uri-permission>
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-10 UTC."],[],[],null,["# <grant-uri-permission\u003e\n\nsyntax:\n:\n\n ```xml\n \u003cgrant-uri-permission android:path=\"string\"\n android:pathPattern=\"string\"\n android:pathPrefix=\"string\" /\u003e\n ```\n\ncontained in:\n: [\u003cprovider\u003e](/guide/topics/manifest/provider-element)\n\ndescription:\n: Specifies the subsets of app data that the parent content provider\n has permission to access. Data subsets are indicated by the path part of a\n `content:` URI. The authority part of the URI identifies the\n content provider.\n Granting permission is a way of enabling clients of the provider that don't\n normally have permission to access its data to overcome that restriction on\n a one-time basis.\n\n\n If a content provider's [grantUriPermissions](/guide/topics/manifest/provider-element#gprmsn)\n attribute is `true`, permission can be granted for any of the data under\n the provider's purview. However, if that attribute is `false`, permission\n is granted only to data subsets that are specified by this element.\n A provider can contain any number of `\u003cgrant-uri-permission\u003e` elements.\n Each one can specify only one path, using one of the three possible attributes.\n\n\n For information about how permission is granted, see the\n [\u003cintent-filter\u003e](/guide/topics/manifest/intent-filter-element) element's\n [grantUriPermissions](/guide/topics/manifest/provider-element#gprmsn) attribute.\n\nattributes:\n:\n\n `android:path`\n\n `android:pathPrefix`\n\n `android:pathPattern`\n : A path identifying the data subset or subsets that permission can be\n granted for. The `path` attribute specifies a complete path.\n Permission can granted only to the particular data subset identified\n by that path.\n\n \u003cbr /\u003e\n\n\n The `pathPrefix` attribute specifies the initial part of a path.\n Permission can be granted to all data subsets with paths that share that\n initial part.\n The `pathPattern` attribute specifies a complete path, but one\n that can contain the following wildcards:\n\n - An asterisk (`*`) matches a sequence of zero to many occurrences of the immediately preceding character.\n - A period followed by an asterisk (`.*`) matches any sequence of\n zero to many characters.\n\n\n Because `\\` is used as an escape character when the string is read\n from XML, before it is parsed as a pattern, you need to double-escape.\n For example, a literal `*` is written as `\\\\*` and a\n literal `\\` is written as `\\\\\\`.\n\n\n For more information about these types of patterns, see the descriptions of\n [PATTERN_LITERAL](/reference/android/os/PatternMatcher#PATTERN_LITERAL),\n [PATTERN_PREFIX](/reference/android/os/PatternMatcher#PATTERN_PREFIX), and\n [PATTERN_SIMPLE_GLOB](/reference/android/os/PatternMatcher#PATTERN_SIMPLE_GLOB) in the\n [PatternMatcher](/reference/android/os/PatternMatcher) class.\n\nintroduced in:\n: API level 1\n\nsee also:\n:\n [grantUriPermissions](/guide/topics/manifest/provider-element#gprmsn)\n attribute of the\n [\u003cprovider\u003e](/guide/topics/manifest/provider-element)\n element"]]