POST

[안드로이드] 코틀린 권한의 보호 수준

권한은 일반 권한, 위험 권한, 서명 권한 3 가지의 보호 수준으로 나뉩니다. 그에 따라 앱을 실행할 때 해당 권한에 대해 사용자에게 확인 요청이 필요한지 여부를 결정합니다.

 

일반 권한(Normal Permission)

일반 권한으로 AndroidMamifest.xml 설정 파일에 명세하면 설치 시 사용자에게 권한 승인을 묻는 팝업창을 보여줍니다. 인터넷 사용, 알람 설정 등이 일반 권한에 포함됩니다.

설정 파일에 명세하는 방법은 <uses-permission/> 태그를 사용하여 권한을 입력하면 됩니다. 예를 들어 블루투스 상태 확인 권한을 작성 하는방법은 아래와 같습니다. permission. 다음에 필요한 권한을 적으면 됩니다.

 

위험 권한(Dangerous Permission)

위험 권한은 앱이 사용자의 개인정보와 관련된 데이터나 기능을 액세스하거나 다른 앱 및 기기의 작동에 영향을 줄 우려가 있는 권한입니다.

위험 권한은 targetSdkVersion이 23이상으로 설정되어야지 정상 작동합니다. 이것은 API 레벨과 동일하며, 대부분은 최신버전으로 프로젝트를 생성하기에 모두 작동이 가능합니다. 참고로 현재의 버전은 31입니다.

 

또한 위험 권한을 사용하려면 설정 파일인 AndroidManifest.xml에 권한을 명세하고 부가적으로 소스코드에 권한 요청 및 처리 로직을 작성해야합니다.

설정 파일에 명세하는 방법은 일반 권한과 같습니다.

소크코드를 짜지않았습니다.

위험 권한을 처리에는 3단게로 나누어 집니다.

  1단계: 권한에 대한 사용자 승인 확인(이전의 승인 여부)

  2단계: 사용자에게 승인 요청

  3단계: 사용자 승인 후 처리

 

서명 권한(Signature Permission)

서명 권한은 권한을 사용하려는 앱이 권한을 정의하는 앱과 동일한 인증서로 서명된 경우 시스템은 권한을 자동으로 부여합니다. 간단하게 설명하자면 구글에서 만든 앱은 권한이 자동으로 부여되는 것과 같다고 생각하면됩니다. 몇몇 특수 권한은 써드파티 앱에서는 사용할 수 없습니다.

 

권한의 그룹

각각의 권한은 그룹 단위로 구성됩니다. 파일에 대해 읽기/쓰기 권한이 있으면 이 2개의 권한은 하나의 그룹에 속합니다. 권한에 대한 요청은 그룹 단위로 처리되며 동일한 권한 그룹 내에서 다른 권한이 이미 부여된 경우 시스템은 즉시 해당 권한을 승인합니다. 

 

예를 들어 주소록 읽기 권한과 주소록 쓰기 권한을 사용 한다고 할 때, 두권한은 CONTACTS 권한 그룹에 속합니다.

앱에서 주소록 읽기 요청에 대한 권한 승인이 있었다면 시스템은 사용자에게 다시 물어 보지 않고 주소록 쓰기 권한에 대해 승인 해버립니다.