본문 바로가기
Front-end/Android (안드로이드 앱 개발)

Android studio (안드로이드 스튜디오) Authrization 위험권한 부여하기 permission

by javapp 자바앱 2020. 3. 18.
728x90

 

Authrization

 

위험권한 부여하기 permission

 

https://developer.android.com/guide/topics/security/permissions?hl=ko

 

public void permissionCheck()
{
    //권한 얻었는지 체크
    if(ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)!= PackageManager.PERMISSION_GRANTED){
        //권한이 없다면
        //권한을 설명 해줘야 할 필요가 있다면
        if(ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.CAMERA)){
            //권한을 설명해준다.
        }else{//권한 획득위해 물어본다
            ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CAMERA},requestCode);
        }
    }
}


//권한 획득 확인 함수

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    if(requestCode == this.requestCode){
        if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
            //
        }else{
              permissionCheck();
        }
    }
}

//권한 체크 함수

public void checkPermission(){
    //현재 버전 6.0 미만이면 종료 --> 6이후 부터 권한 허락
    if(Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return;

    //각 권한 허용 여부를 확인
    for(String permission : permissionList){
        int chk = checkCallingOrSelfPermission(permission);
        //거부 상태라면
        if(chk == PackageManager.PERMISSION_DENIED){
            //사용자에게 권한 허용여부를 확인하는 창을 띄운다.
            requestPermissions(permissionList,0); //권한 검사 필요한 것들만 남는다.
        break;
        }
    }
}



//사용자가 권한 허용했는지 안했는지 파악할 있다.

//requestCode 인자로, 권한들, 허용여부

 

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    text1.setText("");

    //사용자 권한 허용 여부 확인
    for(int i = 0; i < grantResults.length; i++)
    {
        if(grantResults[i] == PackageManager.PERMISSION_GRANTED){
            text1.append(permissions[i]+": 허용\n");
        } else{
            text1.append(permissions[i]+": 거부\n");
        }
    }
}

댓글