[AndroidManifest.xml] uses-permission과 uses-feature의 관계
android 2013. 3. 6. 16:55작성일 : 2013-03-06
작성자 : hanburn
안드로이드는 단말기가 다양해도 너무~ 다양해서 개발 환경에서 잘되다가 market에 올리면 안된다는 피드백이 자주 있다. 그중에 하나가 설치 issue 이다. 설치 문제는 문제가 발생하는 단말을 확보해서 테스트 해보면 좋을텐데 대부분이 단말을 구할수 없는 상태에서 확인을 해야 하기에 종종 탐정놀이에 빠지게 된다.
오늘도 이런 탐정놀이를 하다가 users-permission과 uses-feature에 대해서 정리해 본다.
1. uses-permission 이란?
앱(Application)이 실행될때가 아니라 설치되는 시점에 사용자에게 허가를 받는 권한을 기술하는 것이다. "android.permission.CAMERA" 은 카메라를 사용한다는 권한을 표시한다.
Permission의 종류는 아래 page를 참고 하면 된다.
http://developer.android.com/reference/android/Manifest.permission.html
2. uses-feature 란?
syntax:
<uses-feature
android:name="string"
android:required=["true" | "false"]
android:glEsVersion="integer" />
앱(application)이 사용하는 하드웨어 또는 소프트웨어 특성(feature)를 정의 한다. 요즘 카메라는 대부분 달려있는데, 보급형 같은 경우는 카메라의 자동 초점기능이 없는 단말기도 존재한다.
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
위에처럼 required=false로 하면 카메라에 자동초점 기능이 없더라도 앱을 실행 할 수 있게 된다.
3. uses-permission과 uses-feature의 관계
앞에서 언급한 것처럼 permission을 요구하고 있는데, feature에서 require=false를 정의하지 않으면 해당 feature가 없는 단말에서는 앱을 실행할 수가 없게 된다. CAMERA permission은 물리적인 CAMEAR가 있을 때만 사용가능하기 때문에 하드웨어에 관계된 몇몇 permission에 대해서는 필요로하는 feature가 포함된다.
이러한 관계에 대해서 아래에 정리되어 있으니 permission을 추가할 때, feature도 같이 신경써서 정의해야 한다.
Category |
This Permission... |
Implies This Feature Requirement |
Bluetooth |
|
(See Special handling for Bluetooth feature for details.) |
|
| |
Camera |
|
|
Location |
|
|
|
| |
|
| |
|
| |
|
| |
Microphone |
|
|
Telephony |
|
|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
Wifi |
|
|
|
| |
|
|
참고 : http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions-features