IT/모바일
Nammu 안드로이드 퍼미션 체크 헬퍼
기노상
2017. 3. 7. 15:00
반응형
안드로이드 6.0 마시멜로우 에서 부터 나오는 화면 입니다.
이거 처리 안 하면 저장 도 안 되고 갤러리에서 이미지도 못 가져 옵니다.
이걸 매번 처리 할때 마다 같은 함수 쓰고 있었는데요
https://github.com/tajchert/Nammu
위 사이트에 가서 gradle 추가 하고 설치 하면 복잡한 거 필요 없고
이것만 있으면
안드로이드 6.0 이상 퍼미션은 금방 해결이 된다.
final PermissionCallback permissionContactsCallback = new PermissionCallback() { | |
@Override public void permissionGranted() { | |
boolean hasAccess = Tools.accessContacts(MainActivity.this); | |
Toast.makeText(MainActivity.this, "Access granted = " + hasAccess, Toast.LENGTH_SHORT).show(); | |
} | |
@Override public void permissionRefused() { | |
boolean hasAccess = Tools.accessContacts(MainActivity.this); | |
Toast.makeText(MainActivity.this, "Access granted = " + hasAccess, Toast.LENGTH_SHORT).show(); | |
} | |
}; |
정의를 먼저 하고
if (Nammu.checkPermission(Manifest.permission.READ_CONTACTS)) { | |
//We have a permission, easy peasy | |
boolean hasAccess = Tools.accessContacts(this); | |
Toast.makeText(this, "Access granted = " + hasAccess, Toast.LENGTH_SHORT).show(); | |
} else { | |
//We do not own this permission | |
if (Nammu.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_CONTACTS)) { | |
//User already refused to give us this permission or removed it | |
//Now he/she can mark "never ask again" (sic!) | |
Snackbar.make(mLayout, "Here we explain user why we need to know his/her contacts.", | |
Snackbar.LENGTH_INDEFINITE).setAction("OK", new View.OnClickListener() { | |
@Override public void onClick(View view) { | |
Nammu.askForPermission(MainActivity.this, Manifest.permission.READ_CONTACTS, | |
permissionContactsCallback); | |
} | |
}).show(); | |
} else { | |
//First time asking for permission | |
// or phone doesn't offer permission | |
// or user marked "never ask again" | |
Nammu.askForPermission(this, Manifest.permission.READ_CONTACTS, permissionContactsCallback); | |
} | |
}
|
이런식으로 클릭을 했을 때 바로 띄워 줄수도 있고
처음 시작 할때 미리 체크 할 수도 있습니다..
permissionContactsCallback 이 함수에서 체크 했나 안 했나를 리턴 받아서 처리 하면 됩니다.
반응형