반응형
차근차근 가보자.
특정 기능을 실행시키기 위한 권한을 사용자가 이미 허용했는지 안했는지확인하는 방법에 대해서 알아보자.
(본 단계 진행을 위해서는 Manifest에 권하는 권한에 대해 추가를 해야한다.)
권한 확인 : checkSelfPermission
public static int checkSelfPermission(@NonNull Context context, @NonNull String permission)
ContextCompat.checkSelfPermission()메서드에 확인 원하는 권한 전달→
권한 여부에 따라
PERMISSION_GRANTED(=0)
PERMISSION_DENIED(=-1)
을 리턴한다.
-- 권한 확인
private const val PERMISSION_WRITE_STORAGE = Manifest.permission.WRITE_EXTERNAL_STORAGE;
fun verifyStoragePermissions(activity: Activity) {
var permission = 0
// Check if we have write permission
permission = ActivityCompat.checkSelfPermission(
activity,
PERMISSION_WRITE_STORAGE
)
// 권한 확인 결과 print
println("Storage permission : $permission")
}
-- 현재 어플리케이션은 카메라에 대해서는 권한을 허용했지만, 저장소 접근 권하는 허용하지 않은 상태이다.
따라서 아래 코드 실행 로그는 다음과 같다.
PermissionManager.Companion.verifyStoragePermissions(this); // permission check
PermissionManager.Companion.verifyCameraPermissions(this);
I/System.out: Storage permission : -1
I/System.out: Camera permission : 0
Permission을 관리하는 class
더보기
class PermissionManager {
companion object{
private const val PERMISSION_WRITE_STORAGE = Manifest.permission.WRITE_EXTERNAL_STORAGE;
private const val PERMISSION_CAMERA = Manifest.permission.CAMERA;
fun verifyStoragePermissions(activity: Activity) {
var permission = 0
// Check if we have write permission
permission = ActivityCompat.checkSelfPermission(
activity,
PERMISSION_WRITE_STORAGE
)
println("Storage permission : $permission")
}
fun verifyCameraPermissions(activity: Activity){
var permission = 0
// Check if we have write permission
permission = ActivityCompat.checkSelfPermission(
activity,
PERMISSION_CAMERA
)
println("Camera permission : $permission")
}
}
}
반응형
'안드로이드' 카테고리의 다른 글
[안드로이드] 1. WebView 웹뷰- 띄우기 (Kotlin) (0) | 2023.03.11 |
---|---|
[안드로이드] Permission - 권한 허용 요청(requestPermissions)(feat. Kotlin) (0) | 2023.01.27 |
[Kotlin] CSV 파일 읽고 쓰기 (0) | 2023.01.15 |
[안드로이드] AlertDialog : yes, no창 띄우기. 확인창 띄우기, 알림창 띄우기!(Kotlin) (1) | 2023.01.14 |
[안드로이드] 안드로이드 스튜디오 : Git Push오류 발생 (0) | 2022.11.21 |
댓글