检测是使用前置摄像头还是后置摄像头

时间:2015-05-23 09:44:36

标签: android

使用

打开相机时
Camera cam = Camera.open();

Camera cam = Camera.open(number);

我如何获得这是前置或后置摄像头的信息?有些设备可能同时拥有两种,有些只有一种。

2 个答案:

答案 0 :(得分:2)

更新

API级别21中已弃用

Camera.CameraInfo。 对于较新的版本,请参阅CameraCharacteristics.LENS_FACING。有关详细信息,请参阅this answer。

首先,您可能需要查看Camera类的参考。

方法getNumberOfCameras(此设备只有一个摄像头或两者都有?)和getCameraInfohttps://developer.android.com/reference/android/hardware/Camera.CameraInfo.html)将为您提供所需的确切信息。

有一个使用这两种方法的例子:

private int findFrontFacingCamera() {
    int cameraId = -1;
    // Search for the front facing camera
    int numberOfCameras = Camera.getNumberOfCameras();
    for (int i = 0; i < numberOfCameras; i++) {
      CameraInfo info = new CameraInfo();
      Camera.getCameraInfo(i, info);
      if (info.facing == CameraInfo.CAMERA_FACING_FRONT) {
        Log.d(DEBUG_TAG, "Camera found");
        cameraId = i;
        break;
      }
    }
    return cameraId;
}

答案 1 :(得分:0)

首先,您应该检查您的设备是否支持相机,如果支持相机,则获取设备上可用相机的数量。
<pre>CameraInfo cameraInfo = new CameraInfo();<br/> for (int i = 0; i < numberOfCameras; i++) { Camera.getCameraInfo(i, cameraInfo); if (cameraInfo.facing == CameraInfo.CAMERA_FACING_FRONT) { } }

你可以用这样的东西知道哪个相机是开着的。

希望这会对你有帮助..