차케요 2018. 4. 1. 08:20

안드로이드 위험 권한

 

안드로이드 버전 '마시멜로우(API23)'부터는 앱을 이용할 때 필요한 사용자의 권한이 분류가 되었다. 단순하게 개발자가 Manifests에 적으면 되는 일반 권한(Normal Permission)과 사용자로부터 반드시 승락을 받아야 하는 위험 권한(Dangerous Permission)으로 분류가 된 것인데 물론 위험 권한도 매니페스트에 넣어줘야 하는 건 마찬가지다.

 

차이가 있다면 일반 권한은 앱을 스토어에서 설치할 때 처음 한 번만 승락하면 되는 권한이고 위험 권한은 앱을 설치한 후 실행할 때 사용자에게 다시 한 번 물어봐서 승락을 얻어야 하는 것으로 Dangerous Permission은 개인 정보와 관련된 것들에 접근하는 경우에 필요로 하는데 다음과 같은 것들이 있다.

 

위치(LOCATION), 카메라(CAMERA), 마이크(MICROPHONE), 연락처(CONTACTS), 전화(PHONE), 문자(SMS), 일정(CALENDAR), 센서(SENSORS), SD카드(STORAGE) 등이다.

 

내가 만들어보고 싶은 앱은 일단 기본적으로 INTERNET(일반권한)과 앞에서 정리한 LOCATION이 필요할 것 같다. 물론 만들다가 추가해야 할 것들이 있으면 그때 추가를 하면 될 테니 일단 오늘은 위치 관련 퍼미션을 추가하는 과정을 정리해보자.

 

어제 만들었던 프로젝트를 열고 INTERNET과 LOCATION Permission을 Manafests에 추가를 해준다.

 

 


이 중 위치와 관련된 것은 앱을 실행할 때 대화상자를 열어서 승락을 요구해야 하며 퍼미션을 요구하는 내용의 소스코드는 다음과 같다.


 

우선 앱을 실행하면 권한 체크를 하는 permissionCheck() 메서드를 실행하도록 했으며 그 내용은 아래처럼 작성을 한다.

 

 

권한을 체크하는 메서드에서는 먼저 현재 사용 중인 안드로이드 기기의 버전을 확인해서 '마시멜로우' (API23) 이상 버전이면 위치와 관련된 권한이 있는지 먼저 체크를 한다. 그리고 해당 권한이 없으면 요구를 한 후 onRequestPermissionsResult 메서드에서 그 결과를 받아서 승락과 거부의 상황에 따른 내용을 작성하면 될 것이다.

 

이렇게 해서 안드로이드 위험 권한을 체크하고 요구하는 과정을 정리해봤다.