当前位置: 首页 > 知识库问答 >
问题:

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

单于奕
2023-03-14

我想制作一个只需打开前置摄像头的应用程序,如何使用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);
}

共有3个答案

孔砚
2023-03-14
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);
万俟承望
2023-03-14

使用Intent打开标准的android摄像头应用程序。

永远不要使用android。意图临时演员。CAMERA_FACING属性-这是一个未记录的功能,从一些android版本开始停止工作。

要打开前置相机,你应该使用相机应用编程接口——做一些事情,比如选择前置相机、在视图中显示预览以及手动拍照。@skydroid的回答说明如何找到前置摄像头。请注意,Camera.open()不会像您预期的那样为用户打开摄像机,您应该手动显示预览。

另外请注意,由于API级别21,摄像头API已被弃用,文档建议改用摄像头2 API。但Camera API仍然功能齐全,如果您希望支持旧版本,则别无选择(

连乐
2023-03-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);

其他/替代解决方案

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

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" />

仅适用于姜饼(2.3)和向上Android版本。

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

1.android-Camera2基础

2.照相机示例2

3.沃格拉例子

希望对你有帮助。。

 类似资料:
  • 在Android中,它与webcam一起工作,但不能与webview一起工作。

  • 本文向大家介绍如何在iOS中同时使用前置和后置摄像头?,包括了如何在iOS中同时使用前置和后置摄像头?的使用技巧和注意事项,需要的朋友参考一下 截至目前,您无法同时访问前置和后置摄像头。由于两个摄像头的会话都不相同,因此一个摄像头将立即开始,其他会话将消失。 根据由苹果支持团队回答的苹果开发者论坛- “应用程序无法同时从前置和后置摄像头捕获。您可以从一个切换到另一个(之间有短暂的延迟),但不能同时

  • 问题内容: 在iOS 10发布之前,我使用以下代码获取录像机的视频和音频捕获: 当iOS 10最终问世时,我在运行代码时收到以下警告。请注意,我的录像机仍可以正常运行约2周。 在iOS 10.0中不建议使用“ devices()”:请改用AVCaptureDeviceDiscoverySession。 今天早上运行代码时,录像机停止工作。xCode8没有给我任何错误,但是相机捕获的PreviewL

  • 问题内容: 我正在尝试使前置摄像头具有实时取景。我可以使用以下方法获取后置摄像头: 但是我似乎找不到找到前置摄像头的方法。如何更改上面的代码以使用前置摄像头? 问题答案: 这是我的一个项目的工作示例,用于获取前置摄像头。这是在Objective-C中实现的,但事实证明它是可行的,并且足够容易转换为快捷方式。 在Swift 3.2+中: