[android] 저장공간 권한

안드로이드 앱을 개발할 때 많은 경우에 저장 공간에 대한 권한이 필요합니다. 이 권한을 요청하는 방법을 모두 사용자가 앱을 시작할 때 보다 효과적으로 안내하고 있습니다.

1. 권한을 요청하는 방법

사용자에게 저장 공간에 대한 권한을 요청하기 위해서는 앱의 메니페스트 파일에서 해당 권한을 선언해야 합니다.

메니페스트 파일(permission 요청 선언 예시):

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

그 후, 사용자에게 직접 권한을 요청해야 합니다. 아래는 권한 요청 코드의 예시입니다.

if (ContextCompat.checkSelfPermission(thisActivity,
        Manifest.permission.WRITE_EXTERNAL_STORAGE)
        != PackageManager.PERMISSION_GRANTED) {

    if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
            Manifest.permission.WRITE_EXTERNAL_STORAGE)) {

        // 이 권한이 이유에 대한 설명을 사용자에게 표시
    } else {

        ActivityCompat.requestPermissions(thisActivity,
                new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE);
    }
}

2. 권한 요청 후 사용

권한이 허가되면 onRequestPermissionsResult 메서드를 사용하여 권한 요청에 대한 응답을 처리해야 합니다.

@Override
public void onRequestPermissionsResult(int requestCode,
        String[] permissions, int[] grantResults) {
    switch (requestCode) {
        case MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE: {
            if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                // 권한이 허가되어 저장 공간에 접근 가능
            } else {
                // 권한이 거부되어 저장 공간에 접근 불가능
            }
            return;
        }
    }
}

앱에서 저장 공간에 접근하려면 반드시 이 권한을 획득해야 합니다. 사용자에게 이러한 권한 요청에 대해 명확하게 안내하여 보안적인 측면에서 사용자의 신뢰를 얻을 수 있습니다.

참고 문헌