[android] 안드로이드 권한 설정

안드로이드 앱을 개발하다 보면 사용자의 데이터나 기기에 접근하기 위해 권한(permission)이 필요한 경우가 있습니다. 안드로이드 앱에서 권한을 설정하는 방법을 알아보겠습니다.

앱 매니페스트 파일에 권한 추가

앱 매니페스트(manifest) 파일은 앱의 구성 정보를 담고 있는 중요한 파일입니다. 권한을 설정하기 위해서는 매니페스트 파일에 해당 권한을 추가해야 합니다. 예를 들어, 카메라 기능을 사용하기 위해서는 다음과 같이 카메라 권한을 추가할 수 있습니다.

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

런타임 권한 요청

안드로이드 6.0 (마시멜로)부터는 앱을 실행할 때 사용자에게 권한을 요청하는 런타임 권한(runtime permission) 시스템이 도입되었습니다. 이를 사용하여 앱이 실행 중에 필요한 권한을 요청할 수 있습니다. 권한을 요청하려면 다음과 같이 코드를 작성할 수 있습니다.

if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, MY_PERMISSIONS_REQUEST_CAMERA);
}

권한 확인

앱이 실행 중일 때 사용자가 권한을 수정할 수 있으므로 앱이 권한을 확인해야 합니다. 사용자가 특정 권한을 허용하지 않았을 때의 처리를 다음과 같이 할 수 있습니다.

@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
    switch (requestCode) {
        case MY_PERMISSIONS_REQUEST_CAMERA: {
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                // 권한이 허용된 경우의 처리
            } else {
                // 권한이 거부된 경우의 처리
            }
            return;
        }
    }
}

권한 설정은 사용자의 프라이버시와 보안을 보장하는 중요한 요소이므로 안드로이드 개발시 꼭 고려해야 하는 사항입니다.

참고 자료

안드로이드 개발자 사이트의 권한 관련 문서를 참고하면 상세한 내용을 확인할 수 있습니다.