패스트캠퍼스 챌린지

[패스트캠퍼스 챌린지 3일차] Android 권한 부여하기

오늘 구현해본 기능은 앱에 권한을 부여하는 작업이었습니다. 예를들어서 우리가 평소 카메라 앱을 다운받아서 실행해보면 사진첩에 접근 권한 수락하냐는 다이얼로그가 나오고 수락을 눌러 권한을 부여하는 그 작업입니다.

현재까지는 사진 추가하기 버튼을 누르면 권한을 받아오는 작업까지 했습니다.

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

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.