오늘 구현해본 기능은 앱에 권한을 부여하는 작업이었습니다. 예를들어서 우리가 평소 카메라 앱을 다운받아서 실행해보면 사진첩에 접근 권한 수락하냐는 다이얼로그가 나오고 수락을 눌러 권한을 부여하는 그 작업입니다.
현재까지는 사진 추가하기 버튼을 누르면 권한을 받아오는 작업까지 했습니다.
addPhotoBtn.setOnClickListener {
when{
ContextCompat.checkSelfPermission(
this,
android.Manifest.permission.READ_EXTERNAL_STORAGE
) == PackageManager.PERMISSION_GRANTED -> {
//todo 권한이 잘 부여되었을 때 갤러리에서 사진을 선택하는 기능
}
shouldShowRequestPermissionRationale(android.Manifest.permission.READ_EXTERNAL_STORAGE) -> {
//todo 교육용 팝업 확인 후 권한 팝업을 띄우는 작업
showPermissionContextPopup()
}
else -> {
requestPermissions(arrayOf(android.Manifest.permission.READ_EXTERNAL_STORAGE), 1000)
}
}
}
addPhotoBtn을 눌렀을 때 when 문을 통하여서 각각의 경우에 따라 권한을 가져오는 형식으로 코드를 구성하였습니다.
(android.Manifast.permission.READ_EXTERNAL_STORAGE 권한 가져오기)
private fun showPermissionContextPopup() {
AlertDialog.Builder(this)
.setTitle("권한이 필요합니다.")
.setMessage("전자 액자 앱에서 사진을 불러오기 위해 권한이 필요합니다.")
.setPositiveButton("동의하기") { dialog, which ->
requestPermissions(arrayOf(android.Manifest.permission.READ_EXTERNAL_STORAGE), 1000)
}
.setNegativeButton("취소하기") {_, _ -> }
.create()
.show()
}
위 코드는 다이얼로그를 띄우는 코드를 작성하였습니다.
패스트캠퍼스 바로가기 -> https://bit.ly/3FVdhDa
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'패스트캠퍼스 챌린지' 카테고리의 다른 글
[패스트캠퍼스 챌린지 6일차] Timer_App (0) | 2021.11.06 |
---|---|
[패스트캠퍼스 챌린지 5일차] Android 전자액자 마무리 (0) | 2021.11.05 |
[패스트캠퍼스 챌린지 4일차] Android 전자액자 (0) | 2021.11.04 |
[패스트캠퍼스 챌린지 2일차] Android 계산기 (0) | 2021.11.02 |
[패스트캠퍼스 챌린지 1일차] Android (0) | 2021.11.01 |