- 構文:
<grant-uri-permission android:path="string" android:pathPattern="string" android:pathPrefix="string" />
- 上位の要素:
<provider>
- 説明:
- 親コンテンツ プロバイダがアクセス権限を持っているアプリデータのサブセットを指定します。データのサブセットは
content:
URI のパス部分で指定します。URI の権限部分ではコンテンツ プロバイダを指定します。権限を付与すると、通常はデータへのアクセス権を持たないプロバイダのクライアントが 1 回に限りデータにアクセスできるようになります。コンテンツ プロバイダの
grantUriPermissions
属性がtrue
の場合、プロバイダの管理下のあらゆるデータに対する権限を付与できます。ただし、この属性がfalse
の場合は、この要素で指定されたデータ サブセットに対してのみ権限を付与されます。プロバイダには任意の数の<grant-uri-permission>
要素を含めることができます。各要素では 1 つのパスのみを指定できます(3 つの属性のうちの 1 つを使用)。権限を付与する方法については、
<intent-filter>
要素のgrantUriPermissions
属性をご覧ください。 - 属性:
android:path
android:pathPrefix
android:pathPattern
- 権限を付与可能なデータ サブセットを示すパス。
path
属性では完全なパスを指定します。権限は、このパスで示された特定のデータ サブセットにのみ付与できます。pathPrefix
属性ではパスの最初の部分を指定します。この最初の部分を共有するパスを持つすべてのデータ サブセットに対して権限を付与できます。pathPattern
属性では完全なパスを指定しますが、次のワイルドカードを含めることができます。- アスタリスク(
*
)は、直前の文字が 0 個以上出現するシーケンスと一致します。 ピリオドとそれに続くアスタリスク(
.*
)は、0 個以上の文字のシーケンスに一致します。
\
は、文字列を XML から読み取る際にエスケープ文字として使用されるため、パターンとして解析される前にダブル エスケープする必要があります。たとえば、リテラル*
は\\*
と記述し、リテラル\
は\\\
と記述します。これらの各種パターンについて詳しくは、
PatternMatcher
クラスのPATTERN_LITERAL
、PATTERN_PREFIX
、PATTERN_SIMPLE_GLOB
の説明をご覧ください。 - アスタリスク(
- 導入時の API レベル:
- API レベル 1
- 関連項目:
-
<provider>
要素のgrantUriPermissions
属性
<grant-uri-permission>
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-07-27 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"]]