只有很少的手机带有前置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);
您可以使用上面的代码片段