"java/android/권한설정"의 두 판 사이의 차이

Redjini WiKi
< java‎ | android
 
(차이 없음)

2017년 3월 2일 (목) 06:38 기준 최신판


권한 확인
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
    //권한 있음
}else{
    //권한 없음
}
해당 권한이 없을 경우 ActivityCompat.requestPermissions 메서드를 이용해 사용자에게 해당 권한을 요청해야함.
권한 요청
ActivityCompat.requestPermissions(this, new String[]{
    Manifest.permission.READ_PHONE_STATE,
    Manifest.permission.READ_EXTERNAL_STORAGE ,
    Manifest.permission.WRITE_EXTERNAL_STORAGE,
    Manifest.permission.READ_CONTACTS}, REQUEST_CODE);
권한 요청에 대한 결과는 요청한 Activity의 onRequestPermissionsResult 로 전달됨.
응답 확인
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
     if (requestCode == REQUEST_CODE) {
          //permissions에 대해서 각각 권한 승인 여부 확인
     }
}
requestPermissions 에서 요청한 권한 정보가 permissions에 전달 되므로 각각에 대해서 승인 여부를 확인해야함
앱 정보 실행하기
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.parse("package:" + getPackageName()));
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK	);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY	);
intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);

startActivityForResult(intent, REQUEST_SETTINGS);
참고