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;
}
}
} |
'Development > Android' 카테고리의 다른 글
런타임 권한 모델 고려 사항, 런타임 권한 모델 (Runtime permissions), 서포트 라이브러리 (0) | 2018.01.05 |
---|---|
Android Permission, 시스템 권한 사용, 런타임에 권한 요청 (0) | 2018.01.05 |
앱 권한 획득 도식도 (0) | 2018.01.05 |
getBaseContext() vs getApplicationContext(), getContext() vs getBaseContext() vs getApplicationContext() vs this (0) | 2018.01.04 |
\menu\main.xml, item 속성, android:showAsAction 속성값 (0) | 2018.01.04 |