고똘이의 IT 개발이야기

- 안드로이드 권한(Permissions) 체크 -



안드로이드 6버전 미만에서는 마켓에서 앱을 다운로드 할 때 권한에 대해서 동의할지 여부를 물어 보고 동의 시 다운로드가 진행 되었습니다. 그러나 마시멜로우 버전 이상부터는 앱을 다운로드 받고 나서 권한이 필요한 부분에서 권한을 받아오게 바뀌었습니다.


그리하여 앱개발자들은 마시멜로우 버전부터는 앱권한 체크를 따로 해야하는데 모든 권한을 체크 할 수는 없으니 공식홈페이지에서 보면 Dangerous Permissions들만 권한을 체크 해주면 됩니다.


아래의 권한들이 공식홈페이지에서 정한 권한들입니다.


자 이제 안드로이드 권한 체크하는버에 대해서 코드로 설명 드리겠습니다.



우선 AndroidManifest.xml에 저장공간에 대한 권한을 추가합니다.

↓ 아래의 소스 추가.


1
2
3
 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 
cs



그 다음 우선 권한이 있는지 없는지를 체크합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
// 접근권한이 없을때(저장공간)
if(PackageManager.PERMISSION_GRANTED != checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
        
        // 최초 권한 요청인지, 혹은 사용자에 의한 재요청인지 확인
        if(shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
            
            // 사용자가 임의로 권한을 취소한 경우
            // 권한 재요청
            Log.i(TAG, "권한 재요청");
            requestPermissions(permission, MY_PERMISSIONS_REQUEST_READ_CONTACTS);
            
            
        }else {
            // 최초로 권한을 요청하는 경우(첫실행)
            Log.i(TAG, "권한 최초요청");
            requestPermissions(permission, MY_PERMISSIONS_REQUEST_READ_CONTACTS);
        }
        
 } else { // 접근권한이 있을때
        Log.i(TAG, "접근 허용");
   }
 
 
// 권한체크
//onRequestPermissionsResult는 사용자가 (허용, 거절) 버턴을 눌렀는지 판별하기위해 존재
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    
    switch (requestCode) {
    case MY_PERMISSIONS_REQUEST_READ_CONTACTS:
        // 권한 허용
        if(grantResults.length > 0 && grantResults[0== PackageManager.PERMISSION_GRANTED) {
            Log.i(TAG, "권한 허용");
        }else { //권한 허용 불가
            Log.i(TAG, "권한 거절");
        }
        return;
    }
}
 
cs


↓ 안드로이드 웹뷰(webview) shouldOverrideUrlLoadion() 사용법 설명

2018/10/04 - [안드로이드] - 안드로이드 webview shouldOverrideUrlLoading() 사용법


↓안드로이드와 웹 자바사크립트 연동설명

2018/12/18 - [안드로이드] - [안드로이드] 자바스크립트 연동(자바스크립트 브릿지)



설명을 길게 하고자 했으나 위의 코드의 주석을 보시면 어렵지않게 이해하실거 같아 설명은 생략하겠습니다.

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band