The Android Developer Challenge is back! Submit your idea before December 2.

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

권한에 대한 자세한 내용은 소개 문서의 권한 섹션과 별도의 시스템 권한 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
참고 항목: