728x90
반응형
코틀린에서 권한을 요청하기 위해 정의한 함수
private fun requestPermissions(requestCode: Int, permission: String) {
if (ContextCompat.checkSelfPermission(
this,
permission
) != PackageManager.PERMISSION_GRANTED || ActivityCompat.shouldShowRequestPermissionRationale(
this,
permission
)
) {
ActivityCompat.requestPermissions(
this,
arrayOf(permission),
requestCode
)
}
}
// 모든 권한 불러오기
private fun requestAllPermissions() {
val storageRequestCode = 1001
val locationRequestCode = 1002
val coarseRequestCode = 1003
requestPermissions(1001, Manifest.permission.READ_EXTERNAL_STORAGE)
requestPermissions(1002, Manifest.permission.ACCESS_FINE_LOCATION)
requestPermissions(1003, Manifest.permission.ACCESS_COARSE_LOCATION)
}
외부 쓰기 권한이랑 위치 권한을 얻고 있다.
권한이 있는지 검사 -> UX를 위한 설명 출력 -> 권한 요청
shouldShowRequestPermissionRationale()는 안드로이드 문서 설명에서
더보기
이런 경우 사용할 수 있는 한 가지 접근방식은 사용자가 이미 해당 권한에 관한 요청을 거절한 경우에만
설명을 제공하는 것입니다. 이를 위해 Android는 shouldShowRequestPermissionRationale()이라는 유틸리티
메서드를 제공하는데 이 메서드는 사용자가 이전에 요청을 거부한 경우 true를 반환하고 사용자가 권한을
거부하고 권한 요청 대화상자에서 다시 묻지 않음 옵션을 선택했거나 기기 정책상 이 권한을 금지하는 경우
false를 반환합니다.
라고 나와있는데 이전에 사용자가 요청을 거부한 경우 표시해주고 수락한 경우에는 표시하지 않게 만드는 것 같다.
728x90
반응형
'Language > Kotlin' 카테고리의 다른 글
[Kotlin] 문법 정리 (1) | 2024.04.04 |
---|---|
코틀린 sqlite 사용해보기 (0) | 2020.07.21 |
코틀린에서 API KeyHash 생성하는 함수 (0) | 2020.07.13 |
[안드로이드]CLEARTEXT communication to XXXX not permitted by network security policy 에러 해결 방법 (0) | 2020.07.09 |
[코틀린으로 인스타그램 만들기] 2. 이메일 로그인 파이어베이스 연동하기 (0) | 2020.05.25 |