권한 요청 샘플 코드 - ex) STORAGE

CODEDRAGON Development/Android

반응형


 

권한 요청 샘플 코드 - STORAGE

// ------------------------------

// 권한 설정 요청 코드

// ------------------------------

 

// 권한 구분을 위한 상수 선언

private static final int PERMISSIONS_REQUEST_STORAGE = 1;

 

// 확인할 권한 목록

private static String[] PERMISSIONS_STORAGE = {

            Manifest.permission.READ_EXTERNAL_STORAGE,

            Manifest.permission.WRITE_EXTERNAL_STORAGE

    };

 

// 권한을 획득하기전에 현재 Acivity에서 지정된 권한을 사용할 있는지 여부 체크

if (ContextCompat.checkSelfPermission(thisActivity,

                Manifest.permission.WRITE_EXTERNAL_STORAGE)

        != PackageManager.PERMISSION_GRANTED) {

 

    // 권한 획득에 대한 설명 보여주기

    if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,

            Manifest.permission.WRITE_EXTERNAL_STORAGE)) {

 

        // 사용자에게 권한 획득에 대한 설명을 보여준 권한 요청을 수행합니다.

        // requestPermissions()함수를 호출하여 권한허가를 요청해야 합니다.

 

 

       

    } else {

        // 권한 획득 여부를 요청합니다.

        // 필요한 권한과 요청 코드를 넣어서 권한허가요청에 대한 결과를 받아야 합니다

        ActivityCompat.requestPermissions(thisActivity,

                PERMISSIONS_STORAGE,

                PERMISSIONS_REQUEST_STORAGE);

 

    }

}

 

 

// ------------------------------

// 권한 설정 요청 자동으로 호출되는 메소드입니다.

//------------------------------

@Override

public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {

    switch (requestCode) {

        case PERMISSIONS_REQUEST_STORAGE: {

            // 권한 획득을 경우 grantResults배열에 권한 정보가 요소로 저장되어 있습니다.

            if (grantResults.length > 0

                && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

               

                // 권한 허가

                // 권한 획득이되면 수행해야 동작을 실행합니다.

                // 해당 권한을 사용해서 작업을 진행할 있습니다

 

 

            } else { //권한 획득이 거부되면 결과 배열은 비어있게 됩니다.

// 권한 거부

// 사용자가 해당권한을 거부했을때 수행해야할 동작을 수행합니다

                // 권한 없이 수행되는 작업을 처리하는 메서드를 호출합니다.

            }

            return;

        }

    }

}

 

 

반응형