안드로이드
[안드로이드] Permission - 권한 확인하기(checkSelfPermission)(feat. Kotlin)
디벨로펄
2023. 1. 27. 00:27
반응형
차근차근 가보자.
특정 기능을 실행시키기 위한 권한을 사용자가 이미 허용했는지 안했는지확인하는 방법에 대해서 알아보자.
(본 단계 진행을 위해서는 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")
}
}
}
반응형