참고: 경우에 따라 <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 이상 버전을 실행하는 기기) 사용자에게 권한이 부여됩니다.

권한에 관한 자세한 내용은 소개의 권한 섹션과 별도의 시스템 권한 API 가이드를 참고하세요. 기본 플랫폼에서 정의한 권한 목록은 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 수준 1
참고 항목