android 6.0以上系统部分需要动态授权代码

/**
 * 6.0系统以上要动态授权
 */
private void authorization() {
    //判断权限
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
            != PackageManager.PERMISSION_GRANTED) {

        //请求权限
        ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CAMERA,}, MY_PERMISSION_REQUEST_CODE);
    }else {
        //6.0系统以下业务操作
    }
}


@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    switch (requestCode) {
        case MY_PERMISSION_REQUEST_CODE:

            boolean isAllGranted = true;

            // 判断是否所有的权限都已经授予了
            for (int grant : grantResults) {
                if (grant != PackageManager.PERMISSION_GRANTED) {
                    isAllGranted = false;
                    break;
                }
            }
            //做业务处理或提醒用户开启权限
            if (isAllGranted) {
                // 如果所有的权限都授予了, 则执行业务处理代码

            } else {
                // 弹出对话框告诉用户需要权限的原因, 并引导用户去应用权限管理中手动打开权限按钮
                Toast.makeText(getApplicationContext(), "获取权限失败,可能部分功能无法正常使用,请到应用权限管理中手动打开权限按钮", Toast.LENGTH_SHORT).show();
            }


    }

}

你可能感兴趣的:(android开发)