Android에서는 설치 시간 권한, 런타임 권한, 특별 권한을 비롯하여 권한을 다양한 유형으로 분류한다. 각 권한 유형은 시스템에서 앱에 권한을 부여할 때 앱에서 액세스할 수 있는 제한된 데이터 범위와 앱에서 실행할 수 있는 제한된 작업 범위를 나타낸다.
위험한 권한을 선언하고 앱이 Android 6.0(API 수준 23) 이상을 실행하는 기기에 설치된 경우, 가이드의 단계에 따라 위험한 런타임 권한을 요청해야 한다.
참고 : https://developer.android.com/training/permissions/requesting?hl=ko
참고 : https://developer.android.com/reference/android/Manifest.permission
if (ContextCompat.checkSelfPermission(requireContext().applicationContext, Manifest.permission.권한종류) != PackageManager.PERMISSION_GRANTED) {
// 권한이 허용되어있지 않은 경우
if (ActivityCompat.shouldShowRequestPermissionRationale(requireActivity(), Manifest.permission.권한종류)) {
// 이미 권한을 거절한 경우
} else {
// 처음 권한 요청을 할 경우 권한 승인 요청
registerForActivityResult(ActivityResultContracts.RequestPermission()) {
when (it) {
true -> {
// 승인
}
false -> {
// 거절
}
}
}.launch(Manifest.permission.권한종류)
}
}