What Is The Alternative For Settorchmode In Api 21 And 22
I'm trying run flashlight on API 21 and 22 but not working Code if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { isFlashlightOn(); if
Solution 1:
The function setTorchMode of new API Camera2 is available only since API 23. Old camera API should be used for flash in 21 and 22 API.
You also have to handle all flash modes available because some devices don't have FLASH_MODE_TORCH, but are compatible with FLASH_MODE_ON
You can change your code like this:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
isFlashlightOn();
if (camera == null && parameters == null) {
camera = Camera.open();
parameters = camera.getParameters();
List<String> modes = parameters.getSupportedFlashModes();
if (modes.contains(Camera.Parameters.FLASH_MODE_TORCH)) {
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
}
elseif (modes.contains(Camera.Parameters.FLASH_MODE_ON)) {
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_ON);
}
else {
//No flash available
}
camera.setParameters(parameters);
}
if (getFlashlightState) {
Objects.requireNonNull(camera).startPreview();
} else {
Objects.requireNonNull(camera).stopPreview();
}
} else {
isFlashlightOn();
if (cameraManager == null) {
cameraManager = (CameraManager) this.getSystemService(Context.CAMERA_SERVICE);
}
try {
String cameraId = Objects.requireNonNull(cameraManager).getCameraIdList()[0];
cameraManager.setTorchMode(cameraId, getFlashlightState);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
Post a Comment for "What Is The Alternative For Settorchmode In Api 21 And 22"