[kotlin] 안드로이드 퍼미션 permission

Leechaeyeon·2023년 6월 30일
0

코틀린 안드로이드

목록 보기
1/21

퍼미션

  • 앱의 특정 기능에 부여하는 접근 권한
  • 다른 앱이나 안드로이드 시스템에서 보호하는 특정 기능을 이용할 때 퍼미션 사용을 설정해야한다.

<permission> : 기능을 보호하려는 앱의 매니페스트 파일에 설정한다.
<uses-permission> : 퍼미션으로 보호된 기능을 사용하려는 앱의 매니페스트 파일에 설정한다.


=> 앱의 컴포턴트를 보호하고 싶을 때 매니페스트 파일에서 퍼미션을 설정할 수 있다.

  • 매니페스트 파일에 퍼미션을 설정할 때는 <permission> 태그와 다음 속성을 이용한다.
    • name : 퍼미션의 이름
      -> 개발자가 정하는 이름, 퍼미션을 구별하는 식별자 역할
    • label, description : 퍼미션을 설정한다.
      -> 이 퍼미션을 이용하는 외부 앱에서 권한 인증 화면에 출력할 퍼미션의 정보
    • protectionLevel : 보호 수준
      - nomal : 낮은 수준의 보호, 사용자에게 권한 요청을 하지 않아도 됨
      - dangerous : 높은 수준의 보호, 사용자에게 권한 요청을 요청해야 함
      - signature : 같은 키로 인증한 앱만을 실행
      - signatureOrSystem : 안드로이드 시스템 앱이거나 같은 키로 인증한 앱만 실행된다.

여기서 보호수준이 dangerous 로 설정된 퍼미션만 나온다.

manifest 파일에 permission을 설정했다고 해서 컴포넌트가 보호되지는 않는다.
< permission >을 설정한 다음 이 퍼미션으로 보호하려는 컴포넌트에 적용해야 한다. 퍼미션을 컴포넌트에 적용할 때는 android:permission 속성을 이용해야 한다.

대표적인 기능

  • ACCESS_FINE_L0CATION : 위치 정보 접근
  • ACCESS_NETWORK_STATE : 네트워크 정보 접근
  • ACCESS_WIFI_STATE : 와이파이 네트워트 정보 접근
  • BATTERY_STATS : 배터리 정보 접근
  • BLUETOOTH : 블루투스 장비에 연결
  • BLUETOOTH_ADMIN : 블루투스 장비를 검색하고 페어링
  • CAMERA : 카메라 장치에 접근
  • INTERNET : 네트워크 연결
  • READ_EXTERNAL_STORAGE : 외부 저장소에 파일 읽기
  • WRITE_EXTERNAL_STORAGE : 외부 저장소에 파일 쓰기
  • READ_PHONE_STATE : 전화기 정보 접근
  • SEND_SMS : 문자메시지 발송
  • RECEIVE_SMS : 문제 메시지 수신
  • RECEIVE_BOOT_COMPLETED : 부팅완료시 실행
  • VIBRATE : 진동 울리기

퍼미션 허용 확인

API 레벨23이후로 버전부터 정책이 바뀌어서 사용자가 허가하지 않으면 앱에서 해당 기능을 사용할 수 없게 바뀜

사용자가 퍼미션을 허용했는지? 안했는지 체크 CheckSelfPermission() 함수 사용

open static fun checkSelfPermission(
	@NonNull context: Context,
    @NonNull context: String,
): Int

결과값은 다음 중 하나의 상수로 전달됨

PackageManager.PERMISSION_GRANTED : 권한을 허용한 경우 
PackageManger.PERMISSION_DENIED : 권한을 거부한 경우 

0개의 댓글

관련 채용 정보