我使用以下代码使用Android api 21的意图时默认使用相机使用前置相机:
intent.putExtra(
"android.intent.extras.CAMERA_FACING",
Camera.CameraInfo.CAMERA_FACING_FRONT);
我很想知道如何设置前面的Android API 21。以上不会奏效。
答案 0 :(得分:0)
要将相机用于api 21+(比如api 23或Android M),您需要使用最新的 PermissionManager 来要求用户授予相机权限。未经相机许可,您无法访问相机。
如果未授予permissio,则下面是检查和请求相机许可的示例代码:
if (checkSelfPermission(Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.CAMERA},
MY_REQUEST_CODE);
}
在向用户请求权限对话框后,您可以检查调用活动的onRequestPermissionResult
函数的响应:
@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
}
}
}
官方文件:http://developer.android.com/training/permissions/index.html