<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
참고 항목: