Mobile Application/Android

Android 권한 설정,체크하기(API23, Android 6.0 Marshmallow 이상)

Y freesia 2019. 7. 16. 16:00
반응형

Android 6.0 (Marshmallow)부터 개인정보 유출로 인하여 앱에서 일부 권한을 사용할 때에는 사용자로부터 동의를 받아야 한다. 사용자가 권한을 주었는지 아닌지 확인하기 위해 onRequestPermissionResult 함수를 통해 확인할 수 있다.

 

* 권한 설정

 

AndroidManifest.xml 파일에 아래처럼 두 줄을 추가해 준다

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="....">

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

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

 

 

* 권한 체크

 

int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE); 

if(permissionCheck== PackageManager.PERMISSION_DENIED){ 
   

Log.i("INFO", String.format("[권한없음]")); 
}else{ 
    Log.i("INFO", String.format("[권한있음]")); 

    ActivityCompat.requestPermissions(this, 
                                                      new String[{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                                                      PERMISSIONS_REQUEST);
}

 

* 권한 요청

 

@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
    switch (requestCode) {
        case PERMISSIONS_REQUEST: {
            // If request is cancelled, the result arrays are empty.
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
               //승인 허가 됨
            } else {
               //승인 허가 안됨
            }
            return;
        }
    }
}

 

반응형