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");
}
}
}
댓글