Я создаю простое флэш-приложение, но, похоже, оно не работает, поскольку дает мне исключение CameraAccessException, которое говорит, что камера уже используется.
Это мой код для включения вспышки.
private void turnFlashlightOff() {
if (is_flash_on) {
if (mCamera == null || p == null) {
return;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
try {
String cameraId;
camManager = (CameraManager) this.getSystemService(Context.CAMERA_SERVICE);
if (camManager != null) {
cameraId = camManager.getCameraIdList()[0];
camManager.setTorchMode(cameraId, false);
}
} catch (CameraAccessException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), e.getMessage() , Toast.LENGTH_SHORT).show();
}
} else {
p = mCamera.getParameters();
p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
mCamera.setParameters(p);
mCamera.stopPreview();
is_flash_on = false;
torchImageView.setImageResource(R.drawable.ic_lightbulb_outline_black_24dp);
}
}
}
Любой рабочий раствор будет плодотворным.