반응형

문법

<uses-permission android:name="string"
        android:maxSdkVersion="integer" />


설명

- uses-permission은, 앱이 올바르게 작동하기 위해 사용자가 반드시, 이 앱에게 부여해야 하는 시스템 권한입니다.
앱이 실행중일 때(Android 6.0 이상 버전을 실행하는 기기) 사용자에게 권한이 부여됩니다.
즉, 여기에(uses-permission) 정의된 권한은 설치 과정 중(Android 5.1이하 버전에서 가능) 혹은 앱이 실행 중일 때,

사용자에게 권한을 부여할건지 말건지를 보여주고, 권한 부여 혹은 권한 거절이 결정됩니다.

 

- uses-permission은, 앱이 사용하는 권한들의 목록을 나열한 것입니다. 

다른 말로, uses-permission은 이 앱이 제대로 돌아가기 위해 받아야할 권한들의 목록이라고 이해하면 좋습니다. (반대로 말하면, 이 권한이 부여되지 않았으면, 이 앱이 제대로 돌아가지 않을 것입니다.

어찌됐든, 이 uses-permission에 등록된 권한들은, 앱 구현시 이 앱이 필히 권한을 부여받아야 한다는 걸 잊지 마세요.

*참고 Android 5.1 이하 버전을 실행하는 기기는 애플리케이션이 설치 될 때, 사용자가 앱에 대한 권한을 부여할 수 있습니다.

 

속성

1) android:name
권한의 이름입니다. 아래의 유형이 존재합니다.

1) <permission> 요소가 있는 애플리케이션에서 정의한 권한이거나

2) 다른 애플리케이션에서 정의한 권한이거나 
3) 표준 시스템 권한 (예를 들어, "android.permission.CAMERA" 또는 "android.permission.READ_CONTACTS") 중 하나일 수 있다.


2) android:maxSdkVersion
앱이 이 권한을 부여해야하는 최상위 API 수준.
앱에 필요한 권한이 특정 API 수준부터 더이상 필요하지 않은 경우, 이속성을 설정하면 유용함.


참고

참고: 경우에 따라 <uses-permission>을 통해 요청하는 권한이 Google Play에서 애플리케이션을 필터링하는 방식에 영향을 미칠 수 있습니다.

예를 들어 하드웨어 관련 권한인 CAMERA를 요청할 경우 Google Play는 애플리케이션이 기본 하드웨어 기능을 필요로 한다고 간주하고 이를 제공하지 않는 기기에서 이 애플리케이션을 필터링합니다.

필터링을 제어하려면 <uses-permission> 요소에서 요구사항을 '검색'하는 데 Google Play에 의존하지 말고 항상 <uses-feature> 요소에 하드웨어 기능을 명시적으로 선언합니다. 그런 다음, 특정 기능에 필터링을 사용 중지하려는 경우 android:required="false" 속성을 <uses-feature> 선언에 추가하면 됩니다.

하드웨어 기능을 암시하는 권한 목록은 <uses-feature> 요소에 관한 문서를 참고하세요.

 

 

참고자료/출처

https://developer.android.com/guide/topics/manifest/uses-permission-element?hl=ko 

 

https://stuff.mit.edu/afs/sipb/project/android/docs/guide/topics/manifest/uses-permission-element.html

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=wlsspakss&logNo=220824115151

 

반응형