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;
}
}