如何检测Android手机是否有双背相机

如何检测
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

https://developer.android.com/reference/android/hardware/Camera.html#getCameraInfo(int,%20android.hardware.Camera.CameraInfo)

点赞