<uses-permission>
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
참고: 경우에 따라 <uses-permission>
을 통해 요청하는 권한이 Google Play에서 애플리케이션을 필터링하는 방식에 영향을 미칠 수 있습니다. CAMERA
와 같은 하드웨어 관련 권한을 요청하면 Google Play는 애플리케이션에 기본 하드웨어 기능이 필요한 것으로 가정하고 이를 제공하지 않는 기기에서 애플리케이션을 필터링합니다.
필터링을 제어하려면 <uses-permission>
요소에서 요구사항을 '검색'하는 데 Google Play에 의존하지 말고 항상 <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)부터는 앱에서 WRITE_EXTERNAL_STORAGE
권한을 요청하지 않고도 외부 저장소의 자체 애플리케이션별 디렉터리(getExternalFilesDir()
에서 제공)에 쓸 수 있습니다.
하지만 API 수준 18 이하에서는 이 권한이 필요합니다. 따라서 다음과 같은 선언으로 이 권한이 API 수준 18까지만 필요하다고 선언할 수 있습니다.
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
이렇게 하면 API 수준 19부터 시스템은 더 이상 WRITE_EXTERNAL_STORAGE
권한을 앱에 부여하지 않습니다.
API 수준 19에 추가되었습니다.
- 도입 수준:
- API 수준 1
- 참고 항목:
-
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 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,["# <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)"]]