마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

마시멜로우 에서 퍼미션관련 헷갈립니다 조언부탁합니다

0 추천

마시멜로우 에서 퍼미션관련 헷갈립니다

하나의 앱에 파일탐색기엑티비티와 콘택트접근엑티비티가 

구현되어있는데

퍼미션을 주는게 내생각대로 잘안됩니다

String[] PERMISSIONS = new String[] {Manifest.permission.READ_CONTACTS, Manifest.permission.WRITE_CONTACTS, Manifest.permission.GET_ACCOUNTS};
public boolean lacksPermissions(String... permissions) {
    for (String permission : permissions) {
        if (lacksPermission(permission)) {
            return true;
        }
    }
    return false;
}

private boolean lacksPermission(String permission) {
    if(ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED){
        //Manifest.permission.READ_CALENDAR이 접근 승낙 상태 일때
        return true;
    }else{
        //Manifest.permission.READ_CALENDAR이 접근 거절 상태 일때
        if(ActivityCompat.shouldShowRequestPermissionRationale((Activity)context, permission)){
            //최초 접속이 아니고, 사용자가 다시 보지 않기에 체크를 하지 않고, 거절만 누른경우
            //만약 사용자가 다시 보지 않기에 체크를 했을 경우엔 권한 설정 다이얼로그가 뜨지 않는다.
            //사용자에게 접근권한 설정을 요구하는 다이얼로그를 띄운다.
            ActivityCompat.requestPermissions((Activity)context,new String[]{permission},0);
        }else{
            //최초 접속시, 사용자가 다시 보지 않기에 체크를 했을 경우
            return false;
        }


    }

    //return ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_DENIED;
    return true;
}

처음 콘택트 엑티비티에서 위코드를 실행하면

ActivityCompat.requestPermissions

코드가 실행되어 퍼미션창이 뜨고 사용자의선택을 기다리게 합니다

그리고 허용버튼을 누르면 이상없이 동작하는데

그리고나서 파일탐색기 엑티비티를 실행시키면

위코드가 동작하지를 않습니다

String[] PERMISSIONS = new String[] {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.ACCESS_FINE_LOCATION};

 

ActivityCompat.requestPermissions

퍼미션 창이뜨지를 않고 그냥넘어가서 에러가 나게됩니다

 

한참 헤메다가 앱을 지우고 다시실행하니

콘택트엑티비티도 마찬가지 상태로 됩니다

 

위코드가 잘못된건가요?

 

앱을지우면 퍼미션정보도 지워져야되는것 아닌지???

 

하나의 엑티비티에 특정퍼미션을 설정하면

다른엑티비티에서는 다른퍼미션에서 설정한 퍼미션이 영향을 미치는건지

궁금합니다

 

조언부탁합니다

 

구름처럼달처럼 (5,830 포인트) 님이 2016년 12월 18일 질문

1개의 답변

+1 추천
 
채택된 답변
http://gun0912.tistory.com/61

이거 쓰세요. 편해집니다 ㅎㅎ
쎄미 (162,410 포인트) 님이 2016년 12월 19일 답변
구름처럼달처럼님이 2016년 12월 19일 채택됨
...