您必须为此管理运行时权限,因为您在AndroidManifest中定义的任何权限都不会自动授予.因此,与以下方法一样,您可以检查您的许可是否获得批准
if (checkSelfPermission(Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.CAMERA},
MY_REQUEST_CODE);
}
这里,MY_REQUEST_CODE是一个可以定义的静态常量,它将再次用于requestPermission对话框回调.现在,您将需要回调对话框结果:
@Override
public void onRequestPermissionResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == MY_REQUEST__CODE) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Now user should be able to use camera
}
else {
// Your app will not have this permission. Turn off all functions
// that require this permission or it will force close like your
// original question
}
}
}