Android:Native Camera Application默认为Front Camera

时间:2016-01-05 03:03:16

标签: android android-camera android-camera2

我使用以下代码使用Android api 21的意图时默认使用相机使用前置相机:

intent.putExtra(
    "android.intent.extras.CAMERA_FACING",
    Camera.CameraInfo.CAMERA_FACING_FRONT);

我很想知道如何设置前面的Android API 21。以上不会奏效。

1 个答案:

答案 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