Android 보안 모델에서는 보안 또는 개인 정보 보호와 관련된 기능을 사용할 경우 각 응용 프로그램이 권한을 요청하도록 요구하고 있습니다. 이러한 권한은 응용 프로그램이 패키지화될 때 지정되어야 하며, 런타임에 변경될 수 없습니다. Android 운영 체제에서는 사용자가 응용 프로그램을 설치할 때 해당 응용 프로그램이 어떤 권한을 요청하는지를 알려 줍니다. 기능에 필요한 권한이 요청되지 않는 경우 Android 운영 체제에서는 응용 프로그램이 해당 기능에 액세스할 때 예외가 발생할 수도 있지만, 항상 그런 것은 아닙니다. 예외는 런타임을 통해 응용 프로그램으로 전송됩니다. 감지되지 않는 오류의 경우에는 Android 시스템 로그에 권한 오류 메시지가 추가됩니다.
AIR에서는 응용 프로그램 설명자의
android
요소 내에 Android 권한을 지정합니다. 권한을 추가할 때는 다음 포맷이 사용됩니다(여기서 PERMISSION_NAME은 Android 권한의 이름).
<android>
<manifestAdditions>
<![CDATA[
<manifest>
<uses-permission android:name="android.permission.PERMISSION_NAME" />
</manifest>
]]>
</manifestAdditions>
</android>
manifest
요소 내의 uses-permissions 문은 Android 매니페스트 문서에 바로 추가됩니다.
다양한 AIR 기능을 사용하려면 다음 권한이 필요합니다.
-
ACCESS_COARSE_LOCATION
-
응용 프로그램에서 Geolocation 클래스를 통해 WIFI 및 셀룰러 네트워크 위치 데이터에 액세스할 수 있도록 허용합니다.
-
ACCESS_FINE_LOCATION
-
응용 프로그램에서 Geolocation 클래스를 통해 GPS 데이터에 액세스할 수 있도록 허용합니다.
-
ACCESS_NETWORK_STATE 및 ACCESS_WIFI_STATE
-
응용 프로그램에서 NetworkInfo 클래스를 통해 네트워크 정보에 액세스할 수 있도록 허용합니다.
-
CAMERA
-
응용 프로그램에서 카메라에 액세스할 수 있도록 허용합니다.
참고:
카메라 기능을 사용하기 위한 권한을 요청하면 Android에서는 응용 프로그램도 카메라를 필요로 하는 것으로 가정합니다. 카메라가 응용 프로그램의 선택적 기능인 경우에는
uses-feature
요소를 카메라의 매니페스트에 추가하여 필수 특성을
false
로 설정해야 합니다.
Android 호환성 필터링
을 참조하십시오.
-
INTERNET
-
응용 프로그램에서 네트워크 요청을 수행할 수 있도록 허용하고 원격 디버깅도 허용합니다.
-
READ_PHONE_STATE
-
AIR 런타임에서 전화 통화 중에 오디오를 음소거할 수 있도록 허용합니다. 응용 프로그램이 백그라운드에서 오디오를 재생하는 경우 이 권한을 설정해야 합니다.
-
RECORD_AUDIO
-
응용 프로그램에서 마이크에 액세스할 수 있도록 허용합니다.
-
WAKE_LOCK 및 DISABLE_KEYGUARD
-
응용 프로그램에서 장치가 SystemIdleMode 클래스 설정을 사용하여 대기 모드로 들어가지 못하게 할 수 있도록 허용합니다.
-
WRITE_EXTERNAL_STORAGE
-
응용 프로그램에서 장치의 외부 메모리 카드에 쓸 수 있도록 허용합니다.
예를 들어 모든 권한을 요구하는 응용 프로그램에 대한 권한을 설정하려면 응용 프로그램 설명자에 다음을 추가하면 됩니다.
<android>
<manifestAdditions>
<![CDATA[
<manifest>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>
]]>
</manifestAdditions>
</android>