[Android] APP에 필요한 권한 사용자에게 얻기

Jinny·2021년 4월 2일
0

Android

목록 보기
25/32
post-thumbnail

APP을 사용하다 보면 사용자에게 권한을 승인받아야 할 때가 있다.

지도 app을 만들어 사용자의 위치를 받아오거나, 사진을 찍기 위해 카메라 접근 권한을 받아올 때 등등

오늘은 필요한 권한을 추가하고, 사용자에게 승인을 받고, 승인을 받았는지 여부를 확인 하는 작업을 해본다.

1. 필요 권한을 Manifest에 추가해준다.

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"

2. 권한이 있는지 확인 및 요청하기


val cameraPermissionCheck = ContextCompat.checkSelfPermission(this,android.Manifest.permission.CAMERA)
	if(cameraPermissionCheck != PackageManager.PERMISSION_GRANTED){
		// 권한이 없는 경우
    		// 사용자에게 권한 승인 요청을 한다.
        	ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.CAMERA),1000)
         } else{
            	// 권한이 있는 경우
                Log.d("permissions","권한이 이미 있음")
	 }
}

3. 사용자 응답에 따른 작업 추가하기

onRequestPermissionsResult()를 ovveride하여 사용자의 응답에 따라 할 작업을 추가할 수 있다.

override fun onRequestPermissionsResult(
        requestCode: Int,
        permissions: Array<out String>,
        grantResults: IntArray
    ) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        if(requestCode == 1000){
            if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
                // 승낙된 경우 할 작업
                Log.d("permissions" , "승낙되었습니다.")
            }else {
                // 거부된 경우 할 작업
                Log.d("permissions" , "거부되었습니다.")
            }
        }
    }

👩‍💻 결과

profile
신입 개발자👩‍💻

0개의 댓글