只需要两步走: 一、代码请求权限
/**
* android6.0运行时权限,检测 */
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//6.0以上 int checkPermission = checkSelfPermission(Manifest.permission.CAMERA); if (checkPermission != PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[]{Manifest.permission.CAMERA}, 1);//后面的1为请求码 return; } else { initCamera(holder);//zxing二维码扫描,需要摄像头权限 } } else {//6.0以下 initCamera(holder); //zxing二维码扫描,需要摄像头权限 }
二、处理权限的结果
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode) {//请求码 case 1: if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {//允许 // Permission Granted mLocationClient.startLocation(); } else {//禁止 ToastUtil.showToast(getApplicationContext(), "定位权限被禁止"); } break; default: super.onRequestPermissionsResult(requestCode, permissions, grantResults); }