通常我們進行網路攝影機操作,如掃描二維碼需要判斷是否有後置網路攝影機(Rear camera),比如Nexus 7 一代就沒有後置網路攝影機,這樣在嘗試使用的時候,我們需要進行判斷進行一些提示或者處理。
以下代碼為一系列的方法,用來判斷是否有自拍(Front Camera),後置網路攝影機。
複製代碼 代碼如下:
private static boolean checkCameraFacing(final int facing) {
if (getSdkVersion() < Build.VERSION_CODES.GINGERBREAD) {
return false;
}
final int cameraCount = Camera.getNumberOfCameras();
CameraInfo info = new CameraInfo();
for (int i = 0; i < cameraCount; i++) {
Camera.getCameraInfo(i, info);
if (facing == info.facing) {
return true;
}
}
return false;
}
public static boolean hasBackFacingCamera() {
final int CAMERA_FACING_BACK = 0;
return checkCameraFacing(CAMERA_FACING_BACK);
}
public static boolean hasFrontFacingCamera() {
final int CAMERA_FACING_BACK = 1;
return checkCameraFacing(CAMERA_FACING_BACK);
}
public static int getSdkVersion() {
return android.os.Build.VERSION.SDK_INT;
}
注意:由於getNumberOfCameras以及getCameraInfo均為API 9 引入,所以方法只適用於2.3及其以上。
延伸閱讀:http://developer.android.com/reference/android/hardware/Camera.html http://developer.android.com/reference/android/hardware/Camera.CameraInfo.html