Android默认开启前置摄像头

时间:2014-11-24 10:40:30

标签: java android camera

我需要在我的应用中打开前置摄像头作为默认设置。如果用户点击该按钮,则必须打开前置摄像头。

在我的代码中,我得到了当前Android设备中存在的摄像头数量,如果设备有两个摄像头,我将使用第二个摄像头的ID并在那里写一些摄像头逻辑。

请帮我构建此代码

5 个答案:

答案 0 :(得分:0)

试试这段代码。它工作正常:))

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("Your_TAG", "Camera failed to open: " + e.getLocalizedMessage());
        }
    }
}
return cam;
}

答案 1 :(得分:0)

在此..try中添加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 :(得分:0)

我使用这段代码,它会为你的希望工作:)

Camera c = null;  // object that use
Camera.CameraInfo info = new Camera.CameraInfo();
int count = Camera.getNumberOfCameras();

for (int i = 0; i<cameraCount; i++) {
     Camera.getCameraInfo(i, info);
     if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
     try {
        c = Camera.open(i);
     } catch (RuntimeException e) {
       // Handle
     }
   }
}

答案 3 :(得分:0)

只写这一行

相机mCamera = null;

mCamera = Camera.open(1); //用于前置摄像头

mCamera = Camera.open(0); //用于后置摄像头

答案 4 :(得分:0)

您应该只更改此行

相机mCamera = null;

mCamera = Camera.open(1); //用于前置摄像头

mCamera = Camera.open(0); //用于后置摄像头