Android 6.0权限授予

在android 6.0以及sdk23以上,权限就被分为normal和dangeroushtml

Dangerous Permision:java

Permission Group Permissions
CALENDAR
CAMERA
CONTACTS
LOCATION
MICROPHONE
PHONE
SENSORS
SMS
STORAGE
危险权限设置:
int hasPermision = checkSelfPermission(Manifest.permission.CAMERA);
            if (hasPermision != PackageManager.PERMISSION_GRANTED) {
                if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) {
                    
                    AlertDialog dialog = new AlertDialog.Builder(this)
                            .setMessage("该相册须要赋予访问存储的权限,不开启将没法正常工做, 是否受权?")
                            .setPositiveButton("肯定", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    dialog.dismiss();
                                    ActivityCompat.requestPermissions(MainActivity.this,
                                            new String[]{Manifest.permission.CAMERA},
                                            PERMISION_ID);
                                }
                            })
                            .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    dialog.dismiss();
                                    System.exit(0);
                                }
                            }).create();
                    dialog.show();
                } else {
                    
                    ActivityCompat.requestPermissions(this,
                            new String[]{Manifest.permission.CAMERA},
                            PERMISION_ID);
                }
checkSelfPermission(Manifest.permission.CAMERA):判断权限是否被授予
ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA):判断权限授予是否被拒绝,若是第一次权限授予的时候用户拒绝授予权限,再次运行这段代码时返回ture

 

处理权限申请回调:android

@Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        if (requestCode == PERMISION_ID) {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                //权限授予成功
            } else {
                //权限授予失败
            }
        }
    }

ps:若是权限在AndroidManifest中没有申请过,是不会有权限授予弹出框出来的ide

相关文章
相关标签/搜索