본문 바로가기

안드로이드스튜디오

안드로이드 스튜디오 위험 권한 부여

728x90
반응형

* 안드로이드 마시멜로 버전부터는 권한을 일반 권한과 위험 권한으로 나누었다.

앱을 설치하는 시점에 사용자에게 물어보는 기존의 방식은 사용자가 아무런 생각 없이 앱을 설치하는 경우가 많았으며 이에 따라 설치된 앱들이 단말의 주요 기능을 마음대로 사용할 수 있었다.

이 때문에 위험 권한으로 분류된 권한들에 대해서는 앱을 설치할 때가 아니라 앱을 실행할 때 권한을 부여하도록 변경된 것이다.

* 예를 들면, 인터넷을 사용할 때 부여하는 INTERNET 권한은 일반 권한이다.

따라서 앱을 설치할 때 사용자에게 권한이 부여되어야 함을 알려주고 설치할 것인지를 물어본다.

사용자가 부여할 권한들의 설명을 보고 수락하면 앱이 설치되고 앱에는 INTERNET 권한이 부여된다.

 

* 그러나 위험 권한으로 분류되는 RECEIVE_SMS의 경우에는 설치 시에 부여한 권한은 의미가 없으며 실행 시에 사용자에게 권한을 부여할 것인지 물어보게 된다.

만약 사용자가 권한을 부여하지 않으면 해당 기능은 동작하지 않는다.

즉 앱을 설치했다고 하더라도 권한에 따라 실행할 수 있는 기능에 제약이 생기는 것이다.

위험 권한으로 분류된 주요 기능

* 위험 권한으로 분류된 주요 권한들을 보면 대부분 개인정보가 담겨있는 정보에 접근하거나 개인정보를 만들어낼 수 있는 단말의 주요 장치에 접근할 때 부여된다는 것을 알 수 있다.

위치, 카메라, 마이크, 연락처, 전화, 문자, 일정, 센서로 대표되는 위험 권한은 다음과 같은 세부 권한으로 나뉜다.

위험 권한 그룹의 분류(Permiision Group) 세부 권한(Permission)
LOCATION(위치) ACCESS_FINE-LOCATION
CAMERA CAMERA
MICROPHONE RECORD_AUDIO
CONTACTS READ_CONTACTS
WRITE_CONTACTS
GET_ACCOUNTS
PHONE READ_PHONE_STATE
CALL_PHONE
READ_CALL_LOG
WRITE_CALL_LOG
ADD_VOICEMAIL
USE_SIP
PROCESS_OUTGOING_CALLS
SMS SEND_SMS
RECEIVE_SMS
READ_SMS
RECEIVE_WAP_PUSH
RECEIVE_MMS
CALENDAR READ_CALENDAR
WRITE_CALENDAR
SENSORS BODY_SENSORS
STORAGE READ_EXTERNAL_STORAGE
WRITE_EXTERNAL_STORAGE

* 권한 그룹(Permission Group)은 동일한 기능을 접근하는데 몇 가지 세부 권한을 하나로 묶어주는 역할을 한다.

 

* 기본 권한을 부여할 때는 <uses-permission> 태그를 사용한다.

 

* 위험 권한을 부여하는 것은 앱이 실행 중이라면 언제든 가능하다.

예를 들면, 액티비티가 메모리에 만들어지는 시점에 부여되도록 하려면 onCreate 메서드 안에서 권한 부여 요청을 하지만 버튼이 눌렸을 때 권한이 부여되게 할 수도 있다.

 

 

 

반응형