Я сейчас пытаюсь активировать встроенный передний фонарик на Samsung Galaxy A6, но устройство выдает информацию, как будто нет встроенной фронтальной вспышки.
Я уже пробовал разные методы, которые могут бытьнайдено путем поиска активирующей вспышки.
Сначала была попытка получить supportFlashModes, а затем активировать флэш-память с помощью setParameters (API <23).Но просто getParameters () для фронтальной камеры не возвращает никакой информации о встроенной фронтальной вспышке.Для приложения кажется, что нет фронтальной вспышки. </p>
Затем я попытался использовать API Camera2, представленный в API> = 23, и там возникает та же проблема.Извлечение характеристик камеры, а затем проверка доступности FLASH_INFO приводит только к возвращению false.Также попытка просто активировать вспышку с помощью setTorchMode (FRONT_CAMERA, true) выдает исключение, которое говорит: вспышка недоступна.
В настоящее время у меня только Samsung Galaxy A6 в качестве тестового устройства со встроеннымпередняя вспышка.Тот же код работает без проблем для задней (задней) камеры.
ad 1)
try {
Camera camera;
camera = Camera.open(cameraId);
if (camera == null) {
return false;
}
Camera.Parameters parameters = camera.getParameters();
if (parameters.getFlashMode() == null) {
camera.release();
return false;
}
...
В этот момент он просто завершает работу, потому что .getFlashMode () возвращает ноль для переднейкамера.Следующими шагами будет проверка supportFlashModes, а затем вызов setParamater of Camera.
ad 2)
try {
String camID = null;
for(String cameraID : mCameraManager.getCameraIdList()) {
CameraCharacteristics cameraCharacteristics = mCameraManager.getCameraCharacteristics(cameraID);
int orientation = cameraCharacteristics.get(CameraCharacteristics.LENS_FACING);
if (orientation == CameraCharacteristics.LENS_FACING_FRONT) {
if(cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)) {
camID = cameraID;
}
}
if(camID != null) {
mCameraManager.setTorchMode(camID, true);
}
} catch (Exception exc) {
...
}
Это всего лишь фрагменты для простой активации передней вспышки, но оба метода действуют какаппаратный отклик без встроенной фронтальной вспышки.