Android 6.0 버전 ( 마시멜로우 버전) 부터 PERMISSION 설정을 사용자가 개별로 설정할 수 있게 변경되었습니다.
오버레이 설정 관련 PERMISSION은 http://kylblog.tistory.com/8 이전 포스트에서 먼저 설명드려서 참고하시면 됩니다!
PERMISSION 관련되어 한번 정리를 해보도록 하겠습니다.
이 표에 해당하는 Permissions은 꼭 사용자에게 권한 요청을 해야 하는 Permissions 입니다.
Permission Group | Permissions |
---|---|
CALENDAR | |
CAMERA | |
CONTACTS | |
LOCATION | |
MICROPHONE | |
PHONE | |
SENSORS | |
SMS | |
STORAGE |
출처: http://gun0912.tistory.com/55
외부 저장소를 위한 PERMISSION 요청 설정
위의 두가지 STORAGE PERMISSION을 위한 허가 요청 문입니다.
private void checkPermission() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { // 마시멜로우 버전과 같거나 이상이라면 |
예시로는 저 메소드에 대한 검색을 통해 사용해보시면 됩니다.
위의 권한이 필요한 코드가 실행이 되며 권한 요청이 없다면 코드가 실행되지 않습니다!
일부 앱에서는 처음 실행 할 때 필요한 권한을 모두 요청받는 형태로 구현하기도 하며
권한 체크 하는 라이브러리 까지 만들어 제공해 주고 있다니 찾아보시면 도움이 되리라 생각합니다!
-------------------------------------------------------------------------------------------------
requestPermissions 메서드는
shouldShowRequestPermissionRationale : (한번 거절 후 다시보지 않기 체크 되기 전까지 계속 호출될 수 있는 것)
에서 다시보지않기 체크 후엔 다이얼로그 호출이 되지 않아 다시 되묻는 것이 없어 .. 그 이벤트를 잡아주는 다이얼로그가 필요합니다.
사용자가 권한 허용을 다시보지않기 체크할 만큼 끝까지 안하는 경우에 말이죠..
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResult){ super.onRequestPermissionsResult(requestCode, permissions, grantResults); //위 예시에서 requestPermission 메서드를 썼을시 , 마지막 매개변수에 0을 넣어 줬으므로, 매칭 if(requestCode == 0){ // requestPermission의 두번째 매개변수는 배열이므로 아이템이 여러개 있을 수 있기 때문에 결과를 배열로 받는다. // 해당 예시는 요청 퍼미션이 한개 이므로 i=0 만 호출한다. if(grantResult[0] == 0){ //해당 권한이 승낙된 경우. }else{ //해당 권한이 거절된 경우. |
위의 onRequestPermissionsResult 메서드는 마지막에 항상 결과값 리턴을 위해 호출되는 메서드로
이것을 활용하여 권한을 되묻는 것을 자체적으로 추가하시면 됩니다.
'프로그래밍 > android' 카테고리의 다른 글
안드로이드 Fabric Crashlytics 이용하기(버그 리포트 기록 플러그인) (0) | 2017.02.06 |
---|---|
안드로이드 JNI 사용하기2(JNI 파일,코드작성) (0) | 2017.01.31 |
안드로이드 JNI 사용하기(NDK 설치 및 JNI 환경설정) (0) | 2017.01.31 |
Android monkey test 활용하기(adb명령어) (0) | 2017.01.20 |
안드로이드, 자바 Socket file 여러개 전송-socket open,close() (0) | 2017.01.10 |
안드로이드, java서버 socket 통신 파일 전송 (4) | 2017.01.05 |
안드로이드 오버레이 권한 설정창 이동 (0) | 2016.12.28 |
안드로이드 값 저장 SharedPreferences (2) | 2016.12.27 |