如何检测
Android手机是否有双背相机
我试过了
CameraManager manager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);
try {
for(String id: manager.getCameraIdList())
Log.e("dualtest", id);
} catch (CameraAccessException e) {
e.printStackTrace();
}
但它只给我2个0和1.
最佳答案 您可以使用Camera.getCameraInfo,如下所示.如果你使用api lvl 9
List<Integer> camID = new ArrayList<Integer>();
for(int i=0;i<Camera.getNumberOfCameras();i++){
CameraInfo cameraInfo = new CameraInfo();
Camera.getCameraInfo(i,cameraInfo);
if(cameraInfo.facing==CameraInfo.CAMERA_FACING_BACK) {
camID.add(i);
break;
}
}
如果您使用的是api lvl 21,可以使用Camera2 api
List<String> camID = new ArrayList<String>();
CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
for(String cameraId:manager.getCameraIdList()){
CameraCharacteristics cameraCharacteristics = manager.getCameraCharacteristics(cameraId);
Integer facing = cameraCharacteristics.get(CameraCharacteristics.LENS_FACING);
if(facing==CameraMetadata.LENS_FACING_BACK) {
camID.add(cameraId);
break;
}
}
参考
https://developer.android.com/reference/android/hardware/camera2/CameraManager.html