안드로이드에는 두 종류의 권한이 있다.
첫번째는 사용자에게 따로 권한 승인 여부를 묻지 않고, 설치 시간에 권한을 부여받을 수 있는 설치 시간 권한(Install-time permissions)이다. 이 종류에 해당하는 권한들은 Manifest에 선언하기만 하면 앱 설치와 동시에 사용할 수 있는 권한들이다.
두번째는 다이얼로그를 통해 사용자에게 직접 권한 승인을 요청하여 권한을 부여받는 런타임 권한(Runtime-permission)이다.주로 개인정보에 접근할 수 있는 권한을 런타임 권한으로 분류하고 있다.
주요 권한 종류
- ACCESS_FINE_LOCATION : 정확한 위치 정보 액세스
- ACCESS_NETWORK_STATE : 네트워크에 대한 정보 액세스
- ACCESS_WIFI_STATE : 와이파이 네트워크에 대한 정보 액세스
- BATTERY_STATS : 배터리 통계 수집
- BLUETOOTH : 연결된 블루투스 장치에 연결
- BLUETOOTH_ADMIN : 블루투스 장치를 검색하고 페어링
- CALL_PHONE : 다이얼 UI를 거치지 않고 전화를 시작
- CAMERA : 카메라 장치에 액세스
- INTERNET : 네트워크 연결
- READ_CONTACTS : 사용자의 연락처 데이터 읽기
- READ_EXTERNAL_STORAGE : 외부 저장소에서 파일 읽기
- READ_PHONE_STATE : 장치의 전화번호, 네트워크 정보, 진행 중인 통화 상태 등 전화 상태에 대한 읽기
- READ_SMS : SMS 메시지 읽기
- RECEIVE_BOOT_COMPLETED : 부팅 완료 시 수행
- RECEIVE_SMS : SMS 메시지 수신
- RECORD_AUDIO : 오디오 녹음
- SEND_SMS : SMS 메시지 발신
- VIBRATE : 진동 울리기
- WRITE_CONTACTS : 사용자의 연락처 데이터 쓰기
- WRITE_EXTERNAL_STORAGE : 외부 저장소에 파일 쓰기
사용법
1. 권한 추가
<permission android:name="com.example.permission.TEST PERMISSION"
android:label="Test Permission"
android:description="@string/permission desc"
android:protectionLevel="dangerous"/>
name : permission 이름
label, description : permission에 대한 설명
protectionLevel : 보호 수준
보호수준 종류
normal : 낮은 수준의 보호로 유저에게 권한 부여 요청이 필요 없다.
dangerous : 높은 수준의 보호로 유저에게 권한 부여 요청이 필요하다.
signature : 동일한 키로 사인된 앱만 실행 가능
signaturOrSystem : 안드로이드 시스템 앱이거나 동일키로 사인된 앱만 실행 가능
'Programming > Android' 카테고리의 다른 글
[Android] SharedPreferences (0) | 2022.11.26 |
---|---|
[Android] 유저 알림(Toast, Vibration, Beep) (0) | 2022.11.26 |
[Android] Action Bar (0) | 2022.11.23 |
[Android] Fragment (0) | 2022.11.23 |
[Android] Intent (0) | 2022.11.18 |