如何在Android中使用Intent打开前置摄像头?

Abh*_*shi 9 android android-camera android-studio

我想制作一个应用程序,我必须只打开前置摄像头,我该怎么做呢intent

private void captureImage() {
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

    fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);

    intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
    intent.putExtra("android.intent.extras.CAMERA_FACING", 1);

    // start the image capture Intent
    startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE);
}
Run Code Online (Sandbox Code Playgroud)

sky*_*oid 14

java的

    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    Uri photoUri = Uri.fromFile(getOutputPhotoFile());
    intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
    intent.putExtra("android.intent.extras.CAMERA_FACING", 1);
    startActivityForResult(intent, CAMERA_PHOTO_REQUEST_CODE);
Run Code Online (Sandbox Code Playgroud)

其他/替代解决方案

private Camera openFrontFacingCameraGingerbread() {
    int cameraCount = 0;
    Camera cam = null;
    Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
    cameraCount = Camera.getNumberOfCameras();
    for (int camIdx = 0; camIdx < cameraCount; camIdx++) {
        Camera.getCameraInfo(camIdx, cameraInfo);
        if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
            try {
                cam = Camera.open(camIdx);
            } catch (RuntimeException e) {
                Log.e(TAG, "Camera failed to open: " + e.toString());
            }
        }
    }

    return cam;
}
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml文件中添加这些权限

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.front" android:required="false" />
Run Code Online (Sandbox Code Playgroud)

仅适用于Gingerbread(2.3)和Up Android版本.

否则你也可以查看这些例子

1. android-Camera2Basic

2.相机示例2

3.沃格拉的例子

希望它可以帮助你..


Art*_*kov 5

标准Android相机

使用Intent您打开标准的android相机应用程序。

从不使用 android.intent.extras.CAMERA_FACING属性-这是一个未公开说明的功能,从某些android版本开始停止工作

相机API

要打开前置摄像头,您应该使用Camera API-做一些事情,例如选择前置摄像头,在视图中显示预览以及手动拍照。@skydroid的答案显示了如何找到前置摄像头。请注意,Camera.open()它不会像您期望的那样为用户打开相机,您应该手动显示预览。

另请注意,由于API级别为21,因此不建议使用Camera API,并且文档建议改为使用Camera 2 API。但是Camera API仍然具有完整的功能,并且如果您还想支持旧版本(<API级别21),则别无选择。

  • 问题仍然是:“如何在 Android 中使用 Intent 打开前置摄像头?” ???? (2认同)

小智 3

try this:

 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
 intent.putExtra("android.intent.extras.CAMERA_FACING", 1);
                File outPutFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + Util.SD_CARD_PATH);
                if (!outPutFile.exists()) {
                    outPutFile.mkdirs();
                }
                capturedImageUri = Uri.fromFile(File.createTempFile("packagename" + System.currentTimeMillis(), ".jpg", outPutFile));

                intent.putExtra(MediaStore.EXTRA_OUTPUT, capturedImageUri);
                startActivityForResult(intent, Util.REQUEST_CAMERA);
Run Code Online (Sandbox Code Playgroud)