1 比如动态申请打开相机的权限,先Android版本和该权限师傅需要动态申请。
if (Build.VERSION.SDK_INT >= 23) {
if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.CAMERA}, PERMISSION_TO_CAMERA);
} else {
openCamera();
}
} else {
openCamera();
}
}
2 重写onReqeusetPermissionResult检查申请结果。
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode) {
case PERMISSION_TO_CAMERA:
if (grantResults != null && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
openCamera();
} else {
showToast(R.string.permission_camera_deny,Toast.LENGTH_SHORT);
getActivity().finish();
}
break;
}
}