只有很少的手机带有前置LED闪光灯,如何在Java Android中访问它。我做了很多搜索,但一无所获。 Galaxy J5,J7等手机以及某些LG和HTC手机带有正面LED闪光灯,因此首先我需要确定手机是否带有正面LED闪光灯,以及如何访问它。

我的应用程序是否依赖OEM或所有前置摄像头具有相同的界面???

最佳答案

通过可用的最新Camera2 API,您可以使用以下代码检查前置摄像头是否具有闪光灯功能

    CameraManager cameraManager = (CameraManager)getSystemService(CAMERA_SERVICE);
    try {
        if (hasFlashForFrontCamera(cameraManager)) {
            // has flash for front camera
        }

    } catch (CameraAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

boolean hasFlashForFrontCamera(CameraManager cManager) throws CameraAccessException {
    for(final String cameraId : cManager.getCameraIdList()){
        CameraCharacteristics characteristics = cManager.getCameraCharacteristics(cameraId);
        int cOrientation = characteristics.get(CameraCharacteristics.LENS_FACING);
        if(cOrientation == CameraCharacteristics.LENS_FACING_FRONT) {
            return characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE);
        }
    }
    return false;
}


一旦确认设备前置摄像头是否有闪光灯,然后启用闪光灯

cameraManager.setTorchMode(frontCameraId, true);


禁用闪光灯

cameraManager.setTorchMode(frontCameraId, false);


您可以使用上面的代码片段

09-25 18:13