Android Manifest 파일에서 사용되는 '<uses-permission>'는 응용프로그램이 올바르게 작동하기 위한 응용프로그램에 부여해야하는 권한을 정의할때 사용됩니다. 권한은 애플리케이션이 설치될때 (Android 5.1 이하를 실행하는 기기에서) 또는 앱이 실행되는 동안 (Android 6.0 이상을 실행하는 기기에서) 부여됩니다.
이 '<uses-permission>'의 기본 형식은 아래와 같습니다.
<uses-permission android:name="string"
android:maxSdkVersion="integer" />
|
'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에 추가되었습니다.