반응형
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; } } } |
반응형
'Mobile Application > Android' 카테고리의 다른 글
SQLiteDatabase: Failed to open database '/storage/emulated/0/.XXX/my.db (0) | 2019.07.16 |
---|---|
error: package android.support.v4.view does not exist (0) | 2019.07.12 |
error: package android.support.v4.* does not exist (0) | 2019.07.04 |
Android Studio:: 함수 및 명령어 자동완성 (1) | 2019.02.28 |
Android Studio:: Anko 라이브러리 추가하기 (0) | 2019.02.27 |