Android Kotlin : 사용자 저장소 권한(Permission) 체크
2022. 9. 12. 12:29ㆍ[Android APP] feat. Kotlin/Kotlin 공부
개요
앱 개발을 할 때 안드로이드 정책등과 같은 이유로 사용자에게 권한을 요청하는 코드를 필수적으로 넣어야한다.
권한을 허용받지 못하면 안드로이드의 기능을 제대로 사용할 수 없다.
앱을 켜보면 위치 권한 요청, 인터넷 권한, 디렉토리 접근권한 등 여러 권한들을 요청하는 앱들을 볼 수 있다.
그냥 무심히 지나치는 동안에도 우리는 권한을 체크하고 있다.
본문
아래는 사용자 스마트폰의 저장소 권한을 요청하는 코드이다.
1. Manifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
먼저 Manifest 파일에 위 권한을 추가한다.
(때에 따라 여러 요청들도 추가할 수 있다. 예를 들면
<!-- 통신을 위한 인터넷 연결 권한 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 카메라 기능 권한 -->
<uses-permission android:name="android.permission.CAMERA" />
<!-- 사용자 위치 정보 권한 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
요론것들)
2. Activity
//저장소 사용자 권한 요청(안드로이드 정책)
private fun requestMultiplePermissions() {
Dexter.withActivity(this)
.withPermissions(
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE
)
.withListener(object : MultiplePermissionsListener {
override fun onPermissionsChecked(report: MultiplePermissionsReport) {
// check if all permissions are granted
if (report.areAllPermissionsGranted()) {
Toast.makeText(
applicationContext,
"이미 권한체크를 완료했습니다",
Toast.LENGTH_SHORT
).show()
}
// check for permanent denial of any permission
if (report.isAnyPermissionPermanentlyDenied) {
// show alert dialog navigating to Settings
}
}
override fun onPermissionRationaleShouldBeShown(
permissions: List<PermissionRequest?>?,
token: PermissionToken
) {
token.continuePermissionRequest()
}
}).withErrorListener {
Toast.makeText(applicationContext, "Some Error! ", Toast.LENGTH_SHORT).show()
}
.onSameThread()
.check()
}
사용자에게 권한을 허용할 것인지 요청하기 위해 위 코드를 추가해준다.
만약 사용자가 이미 앱에 권한을 허용한 상태라면 "이미 권한 체크를 완료했습니다." 텍스트를 Toast로 띄어준다.
반응형
'[Android APP] feat. Kotlin > Kotlin 공부' 카테고리의 다른 글
Android Kotlin : Coroutine과 Thread (0) | 2022.09.15 |
---|---|
Android Koltin : 비밀번호, 이메일 등 정규식 (0) | 2022.09.12 |
Android Kotlin : 전화번호 및 주민등록번호 하이픈(-) 처리 (0) | 2022.09.08 |
Android Kotlin : Retrofit2 동적 Url주소 만들기 (0) | 2022.09.08 |
Android Kotlin : SHA-512 암호화 함수 (0) | 2022.09.08 |