<uses-permission>
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
注: 場合によっては、<uses-permission>
を通じてリクエストした権限が、Google Play でのアプリのフィルタリングに影響を与えることがあります。ハードウェア関連の権限(CAMERA
など)をリクエストした場合、Google Play は、基となるハードウェア機能がアプリに必要であると見なし、その機能を持たないデバイスからアプリを除外します。
フィルタリングを制御するには、Google Play に頼って <uses-permission>
要素の要件を「検出」するのではなく、必ず <uses-feature>
要素でハードウェア機能を明示的に宣言します。特定の機能のフィルタリングを無効にする場合は、android:required="false"
属性を <uses-feature>
宣言に追加します。
ハードウェア機能を暗示する権限のリストについては、<uses-feature>
要素のドキュメントをご覧ください。
- 構文:
<uses-permission android:name="string"
android:maxSdkVersion="integer" />
- 上位の要素:
<manifest>
- 説明:
- アプリが正常に動作するためにユーザーが付与する必要があるシステム権限を指定します。ユーザーは、Android 5.1 以前を搭載したデバイスではアプリのインストール時に、または Android 6.0 以降を搭載したデバイスではアプリの実行中に、権限を付与します。
権限について詳しくは、アプリ マニフェストの概要の権限のセクションと、Android での権限に関するガイドをご覧ください。ベース プラットフォームで定義されている権限のリストは、android.Manifest.permission
で確認できます。
- 属性:
android:name
- 権限の名前。
<permission>
要素を使用してアプリで定義した権限、別のアプリで定義した権限、または、いずれかの標準的なシステム権限("android.permission.CAMERA"
、"android.permission.READ_CONTACTS"
など)です。このように、権限の名前には通常、プレフィックスとしてパッケージ名が含まれます。
android:maxSdkVersion
- アプリにこの権限を付与する最大の API レベル。この属性を設定すると、アプリが必要とする権限が特定の API レベルで不要になった場合に便利です。
たとえば、Android 4.4(API レベル 19)以降では、アプリが外部ストレージ上のアプリ固有のディレクトリ(getExternalFilesDir()
によって提供されるディレクトリ)に書き込むために、WRITE_EXTERNAL_STORAGE
権限をリクエストする必要がなくなりました。
しかし、この権限は API レベル 18 以前では必須です。そこで次のようにすると、この権限は API レベル 18 以前でのみ必要であるということを宣言できます。
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
これで API レベル 19 以降では、システムがアプリに WRITE_EXTERNAL_STORAGE
権限を付与しなくなります。
API レベル 19 で追加されました。
- 導入時の API レベル:
- API レベル 1
- 関連項目:
-
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[null,null,["最終更新日 2025-07-27 UTC。"],[],[],null,["# <uses-permission\u003e\n\n**Note:** In some cases, the permissions that you request\nthrough `\u003cuses-permission\u003e` can affect how Google Play filters your\napplication. If you request a hardware-related permission, such as\n`CAMERA`, Google Play assumes that your\napplication requires the underlying hardware feature and filters the application\nfrom devices that don't offer it.\n\nTo control filtering, always explicitly declare\nhardware features in `\u003cuses-feature\u003e` elements, rather than\nrelying on Google Play to \"discover\" the requirements in\n`\u003cuses-permission\u003e` elements. Then, if you want to disable\nfiltering for a particular feature, you can add a\n`android:required=\"false\"` attribute to the\n`\u003cuses-feature\u003e` declaration.\n\nFor a list of permissions that imply\nhardware features, see the documentation for the [`\u003cuses-feature\u003e`](/guide/topics/manifest/uses-feature-element#permissions-features) element.\n\nsyntax:\n:\n\n ```xml\n \u003cuses-permission android:name=\"string\"\n android:maxSdkVersion=\"integer\" /\u003e\n ```\n\ncontained in:\n: [\u003cmanifest\u003e](/guide/topics/manifest/manifest-element)\n\ndescription:\n\n: Specifies a system permission that the user must grant for the app to operate correctly. The user grants permissions when the application installs, on devices running Android 5.1 and lower, or while the app runs, on devices running Android 6.0 and higher.\u003cbr /\u003e\n\n\n For more information on permissions, see the\n [Permissions](/guide/topics/manifest/manifest-intro#perms)\n section in the app manifest overview and the\n [Permissions on Android](/guide/topics/permissions) guide.\n A list of permissions defined by the base platform is at\n [android.Manifest.permission](/reference/android/Manifest.permission).\n\nattributes:\n:\n\n `android:name`\n : The name of the permission. It can be a permission defined by the\n application with the [\u003cpermission\u003e](/guide/topics/manifest/permission-element)\n element, a permission defined by another application, or one of the\n standard system permissions, such as\n [\"android.permission.CAMERA\"](/reference/android/Manifest.permission#CAMERA)\n or [\"android.permission.READ_CONTACTS\"](/reference/android/Manifest.permission#READ_CONTACTS). As these examples show,\n a permission name typically includes the package name as a prefix.\n\n `android:maxSdkVersion`\n\n : The highest API level at which this permission is granted to your app. Setting this attribute is useful if the permission your app requires is no longer needed beginning at a certain API level.\u003cbr /\u003e\n\n For example, beginning with Android 4.4 (API level 19) it's no longer necessary for your app\n to request the [WRITE_EXTERNAL_STORAGE](/reference/android/Manifest.permission#WRITE_EXTERNAL_STORAGE)\n permission to write to its own application-specific directories on external storage, which are\n provided by [getExternalFilesDir()](/reference/android/content/Context#getExternalFilesDir(java.lang.String)).\n\n However,\n the permission *is required* for API level 18 and lower. So you can declare that this\n permission is needed only up to API level 18 with a declaration like the following: \n\n ```xml\n \u003cuses-permission\n android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"\n android:maxSdkVersion=\"18\" /\u003e\n ```\n\n This way, beginning with API level 19, the system no longer grants your app the\n `WRITE_EXTERNAL_STORAGE` permission.\n\n Added in API level 19.\n\nintroduced in:\n: API level 1\n\nsee also:\n:\n - [\u003cpermission\u003e](/guide/topics/manifest/permission-element)\n - [`\u003cuses-permission-sdk-23\u003e`](/guide/topics/manifest/uses-permission-sdk-23-element)\n - [\u003cuses-feature\u003e](/guide/topics/manifest/uses-feature-element)"]]