Я хочу включить программную фоновую вспышку камеры (не с предварительным просмотром камеры) в Android. Я googled для этого, но помощь, которую я нашел, связала меня с этой страницей Есть ли у кого-нибудь ссылки или пример кода?
saiket 20 май 2011, в 09:52
Поделиться
Поделиться:
android-camera
11 ответов
Лучший ответ
- Проверьте, светится ли вспышка доступно или нет?
- Если да, то выключите/вкл
- Если нет, вы можете делать все, что в соответствии с вашим приложением. потребности
Для Проверка наличия флэш-памяти на устройстве:
Вы можете использовать следующие
context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
который вернет true, если доступна вспышка, false, если нет.
Для включения/выключения фонарика:
Я googled и получил это о android.permission.FLASHLIGHT. Разрешение Android-манифеста выглядит многообещающим:
Затем используйте Camera и установите Camera.Parameters. Основной параметр, используемый здесь, FLASH_MODE_TORCH.
НЕ РАБОТАЕТ КАМЕРА ТЕЛЕФОНА с АНДРОИД! Почему? Что делать? РЕШЕНИЕ! Лечим ошибку камеры!
Фрагмент кода для включения вспышки камеры.
Camera cam = Camera.open(); Parameters p = cam.getParameters(); p.setFlashMode(Parameters.FLASH_MODE_TORCH); cam.setParameters(p); cam.startPreview();
Фрагмент кода для отключения подсветки камеры.
cam.stopPreview(); cam.release();
Я только что нашел проект, который использует это разрешение. Проверьте код src быстрой настройки. здесь http://code.google.com/p/quick-settings/ (Примечание: эта ссылка теперь сломана)
Update6 Вы также можете попытаться добавить SurfaceView, как описано в этом ответе светодиодный фонарик на Galaxy Nexus, управляемый каким API? Это похоже на решение, которое работает на многих телефонах.
Обновление 5 Главное обновление
Я нашел альтернативную ссылку (для выше неработающих ссылок): http://www.java2s.com/Open-Source/Android/Tools/quick-settings/com.bwx.bequick.flashlight.htm Теперь вы можете использовать эту ссылку. [Обновить: 14/9/2012 Эта ссылка сейчас не работает]
Обновление 1
Обновление 2
Пример, показывающий, как включить светодиод на Motorola Droid: http://code.google.com/p/droidled/
Другой код с открытым исходным кодом:
Обновление 3 (виджет для включения/выключения камеры)
Если вы хотите создать виджет, который включает/выключает вашу камеру, то вы должны направить свой ответ Виджет для включения/выключения фонарика камеры в Android..
Обновление 4
Если вы хотите установить интенсивность света, выходящего из светодиода камеры, вы можете сослаться на Могу ли я изменить интенсивность светодиодного сигнала на устройстве Android? в полном сообщении.. Обратите внимание, что только Усовершенствованные устройства HTC поддерживают эту функцию.
Проблемы:
Также возникают проблемы при включении/выключении фонарика. например. для устройств, не имеющих FLASH_MODE_TORCH или даже если он есть, тогда фонарик не включается и т.д.
Обычно Samsung создает много проблем.
НЕ РАБОТАЕТ КАМЕРА на Телефоне ANDROID — ЧТО ДЕЛАТЬ? Samsung, Xiaomi, Honor, Huawei/Ошибка Камеры
Вы можете ссылаться на проблемы в приведенном ниже списке:
Kartik Domadiya 20 май 2011, в 09:20
Поделиться
Спасибо за вашу помощь, это работает для меня! — Я просто скопировал интерфейс Flashlight и класс HtcLedFlashlight, затем я просто вызываю метод setOn с истинным / ложным HtcLedFlashlight и этим. — Interface-Flashlight code.google.com/p/quick-settings/source/browse/trunk/… — Class-HtcLedFlashlight code.google.com/p/quick-settings/source/browse/trunk/…
saiket 20 май 2011, в 10:31
Kartik Domadiya 20 май 2011, в 10:32
RajaReddy PolamReddy 14 нояб. 2011, в 07:03
Kartik Domadiya 14 нояб. 2011, в 07:09
RajaReddy PolamReddy 14 нояб. 2011, в 07:57
Kartik Domadiya 08 дек. 2011, в 13:18
RajaReddy PolamReddy 12 дек. 2011, в 10:54
для разрешений правильный код в файле манифеста: ` <использование-разрешения android: name =» android.permission.CAMERA «/><использование-разрешения android: name =» android.permission.FLASHLIGHT «/>`
ixeft 24 май 2012, в 22:02
большинство ссылок не работают. 🙂
RMachnik 05 март 2014, в 11:58
Также используйте: — camera.release ();
Chetan 09 авг.
2015, в 11:34
Как я могу включить и выключить свет?
Ruchir Baronia 26 апр. 2016, в 04:58
Почему этот android.permission.FLASHLIGHT недокументирован? Насколько это безопасно? Я могу переключать фонарик только с разрешения камеры!
Muhammad Babar 13 май 2017, в 15:06
возможно github.com/yanchenko/quick-settings работает
Cœur 10 сен. 2017, в 14:14
Показать ещё 11 комментариев
Из моего опыта, если ваше приложение предназначено для работы как в портретной, так и в альбомной ориентации, вам нужно объявить переменную cam статичной. В противном случае onDestroy() , который вызывается при переключении ориентации, уничтожает его, но не освобождает камеру, поэтому невозможно снова открыть его снова.
чтобы показать, что я должен был поставить эту строку
предложенные строки выше не работают для меня.
Ján Lazár 29 дек. 2012, в 19:42
Поделиться
Вам не нужно проверять функцию системы, если камера выключена. Если cam! = Null, он был включен
Greg Ennis 26 авг. 2014, в 04:25
Самым полезным для меня было то, что you need to declare the variable cam as static
Alex Jolig 18 сен. 2015, в 15:06
При импорте Camera Class в AndroidStudio обратите внимание на класс android.hardware .
SAM NZD 02 май 2018, в 21:14
Показать ещё 1 комментарий
Я получил подсветку AutoFlash с помощью простых трех шагов.
- Я только что добавил разрешение камеры и Flash в файл Manifest.xml.
- В коде камеры выполните этот способ.
//Open Camera Camera mCamera = Camera.open(); //Get Camera Params for customisation Camera.Parameters parameters = mCamera.getParameters(); //Check Whether device supports AutoFlash, If you YES then set AutoFlash List flashModes = parameters.getSupportedFlashModes(); if (flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_AUTO)) < parameters.setFlashMode(Parameters.FLASH_MODE_AUTO); >mCamera.setParameters(parameters); mCamera.startPreview();
swiftBoy 14 нояб. 2013, в 11:41
Поделиться
В API 23 или выше (Android M, 6.0)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) < CameraManager camManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE); String cameraId = null; // Usually back camera is at 0 position. try < cameraId = camManager.getCameraIdList()[0]; camManager.setTorchMode(cameraId, true); //Turn ON >catch (CameraAccessException e) < e.printStackTrace(); >>
camManager.setTorchMode(cameraId, false);
Jack the Ripper 22 нояб. 2016, в 18:10
Поделиться
Что вы подразумеваете под «Обычно фронтальная камера находится в 0 положении»?
Как я могу проверить, что впереди, а что нет? Кстати, передняя камера — это та, которая направлена на текущего пользователя. Камера, обращенная назад, вероятно, всегда имеет вспышку. И как я могу проверить, включена ли вспышка или нет?
android developer 25 нояб. 2018, в 15:37
Android Lollipop представил API камеры2 и устарел предыдущий API камеры. Однако использование устаревшего API для включения Flash все еще работает и намного проще, чем использование нового API.
Кажется, что новый API предназначен для использования в специализированных полнофункциональных приложениях для камер и что его архитекторы действительно не рассматривают более простые варианты использования, такие как включение фонарика. Чтобы сделать это сейчас, нужно получить CameraManager, создать CaptureSession с манекеном Surface и, наконец, создать и запустить CaptureRequest. Обработка исключений, очистка ресурсов и длинные обратные вызовы!
Чтобы посмотреть, как включить фонарик на Lollipop и новее, посмотрите FlashlightController в проекте AOSP (попробуйте найти новейшие, как старые API использования, которые были изменены). Не забудьте установить необходимые разрешения.
Android Marshmallow наконец представила простой способ включить флеш с setTorchMode.
LukaCiko 20 янв. 2015, в 15:03
Поделиться
Старый API android.hardware.Camera продолжает функционировать точно так же, как и раньше, поэтому нет фундаментальной причины, по которой вам нужно использовать android.hardware.camera2 для фонарика. Вполне возможно, что вы сможете снизить энергопотребление и нагрузку на процессор с помощью camera2, поскольку вам не нужно вести активный предварительный просмотр, чтобы включить фонарик.
Eddy Talvala 22 янв. 2015, в 05:32
Я попробовал одну из более простых реализаций на двух устройствах Lollipop, и она не включала флэш-память, хотя она работала на всех нескольких устройствах до Lollipop, на которых я ее пробовал. Возможно, это просто ошибка в Lollipop. Если старые методы все еще работают для вас, и если вы не являетесь пуристом Java, продолжайте использовать старый API, поскольку он намного проще 🙂
LukaCiko 22 янв. 2015, в 09:13
В настоящее время у меня есть Nexus 5 с Lollipop, и он работает отлично. У меня также есть приложение, созданное мной, работает и реализуется с помощью этих методов. На случай, если кто-то захочет попробовать. Я поставил ссылку на игровой магазин: play.google.com/store/apps/details?id=com.fadad.linterna. В основном важно убедиться, что камера активна или отключена перед запуском вспышки и разрешений.
ferdiado 14 фев. 2015, в 19:52
Извините моя ошибка. Возможно, другое приложение использовало камеру, когда я пытался включить вспышку со старым API. Я обновил ответ.
LukaCiko 14 фев. 2015, в 21:54
Показать ещё 2 комментария
Полный код для приложения для флеш-памяти Android
RAP 06 дек. 2015, в 18:51
Поделиться
если вспышка уже включена до запуска вашего примера, то попытка выключить вспышку не сработает . у вас есть решение этой проблемы?
Источник: overcoder.net
Невозможно подключить камеру. Закройте другие приложения, которые могут использовать камеру и вспышку на Huawei и Honor
Ошибка «Невозможно подключить камеру. Закройте другие приложения, которые могут использовать камеру и вспышку» – распространённый сбой среди пользователей гаджетов Хуавей. Данный запрос часто возникает на различных клиентских пабликах и чатах. На веб-платформах пользователи делятся полезной информацией про проблемы в работе устройств.
Некоторые используют перезагрузку смартфона. Вторые прибегают к более серьезными методами. Они сбрасывают настройки до заводского состояния. Перед выполнением операции сохраните данные на внешний носитель. Воспользуйтесь облаком в интернете, картой памяти или флешкой. Для устранения неполадок воспользуйтесь краткой инструкцией.
Полезные советы размещены ниже.
Причины
Главные причины, согласно которым на дисплеи гаджета появляется сообщение «Не удалось включить камеру»:
- В стандартном режиме активна другая программа, которая учитывает и объектив и вспышку;
- Владелец мобильного использовал подобный сервис. При этом задействовали камеру гаджета. Во время проведения телефон заглючил. Закройте работающие в фоновом режиме сторонние приложения.
- Стандартный сбой системы;
- Вирусы, которые попадают во время скачивания посторонних файлов с интернета. Большинство из них негативно влияют на работоспособность опции.
Когда появляется ошибка
Название ошибки появляется на экране при запуске значка «Camera». Помимо этого, при открытии приложений, связанных с фотографированием или съемкой видео. Также в программах для обработки изображений.
Как устранить ошибку
Исходя из причины появления текста «Error», требуется определить методы решения. Обратитесь к способам, размещенным ниже. Выполняйте инструкции для устранения проблемы на android.
«Не закрывайте верхнюю часть экрана» на Хонор и Хуавей: что это, как отключить
Проверяем камеру другими приложениями
Запустите «Панель задач», просмотрите перечень активных программ. В списке есть те, которые провоцируют распространения сбоя? В таком случае «Снимите задачу» и закройте утилиту на Huawei или Honor.
Перезагрузка гаджета
Не удалось включить камеру на андроид? Рекомендуем решить проблему быстрым способом. Проведите перезагрузку системы. Таком метод способен обновить мобильный и запустить рабочий процесс. В таком случае, открытые приложение не будут мешать работе опции.
Тест телефона в безопасном режиме
Предыдущие методы не решили сбой? Тогда осуществите калибровку некоторых функций мобильного в стандартном режиме. Запустите встроенное приложение для съемки, после изменяйте параметры между собой:
- фото;
- видеосъёмка;
- панорама;
- ночной режим
- обрезанные изображения.
Далее просмотрите параметры, доступные каждой опции.
Камера занята программой
В электронном магазине утилит Play Market есть много софтов. Большинство их них требуют разрешение на подключения драйверов видеосъемки.
Установите любое и запустите его. В случае отсутствия проблем, переходите к следующим действиям:
- откройте раздел андроида при помощи «быстрого меню» или иконки на рабочей платформе;
- нажмите на каждую строку с «Приложением»;
- теперь выделите «Все»;
- отыщите в списке камеру;
- далее запустите и кликните на строку «Очистки загрузок;
- теперь закрываем настройки и снова открываем утилиту.
Удаления кэша
Программа все равно выдает смс о неправильном запуске? Переходите к шагам:
- откройте режим Рекавери ( нажмите клавиши «Главная» или редактирования громкости);
- используя кнопки уменьшения звука перейдите на строку «Wipe cache partition»
- кликните на клавишу «Удалить»;
- подтвердите проведения операции и зажмите на несколько секунд;
- далее выключите и включите устройство, заново откройте режим съемки.
Сброс и восстановление устройства
Стандартные инструменты не помогли? Воспользуйтесь простым вариантом. Очистите гаджет до заводского состояния. Согласно этому методу память устройства очищается полностью. При этом уничтожаются основные параметры:
Если у Вас остались вопросы или есть жалобы — сообщите нам
Задать вопрос
- программы;
- параметры;
- фотографии, видеофрагменты, аудиофайлы.
Как настроить время/дату на смартфонах Хонор и Хуавей: способы, инструкция
После включения потребуется вводить данные заново. Настройте параметры самостоятельно. Для сброса потребуется:
- перейдите в папку «Настройки»;
- выберите пункт «Сброс»;
- подтвердите действия и кликните на «Ок»;
- дождитесь перезагрузки и проверьте работу системы;
- настройте параметры.
Удаление сторонних приложений
Так как причиной ошибки на дисплее Android становится посторонние программы, рекомендуем убрать их из внутренней памяти гаджета. Они негативно влияют на работу камеры и вспышки. Выполните удаление с «Главного меню». Удерживайте пару секунд и выделите иконку. Перенесите значок в папку «Корзина».
Обязательно подтвердите удаление программы.
Анатолий Богданов (Написано статей: 106)
Куратор сайта и редактор-эксперт. Отслеживает работу каждого сотрудника. Проверяет каждую статью перед выпуском. Помимо этого, является редактором-экспертом и отвечает на комментарии пользователей. Просмотреть все записи автора →
Источник: huawei-guide.com
Как в Android можно получить доступ к фонарику/вспышке камеры, если фонарик к данной камере не привязан?
В стандартном приложении «Камера» на телефоне можно включить вспышку/фонарик. При этом, когда я пытаюсь сделать это в своем приложении с помощью cameraManager.setTorchMode(cameraID, true); я получаю ошибку. Вывод из debugger дает знать о том, что камера не обладает функцией вспышки:
boolean hasFlashForFrontCamera(CameraManager cManager) throws CameraAccessException < for(final String cameraId : cManager.getCameraIdList())< CameraCharacteristics characteristics = cManager.getCameraCharacteristics(cameraId); boolean cFlash = characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE); Log.i(LOG_TAG, «CameraID: «+cameraId); Log.i(LOG_TAG, «CameraFlashInfo: «+cFlash); >return false; >
I/: CameraID: 1 CameraFlashInfo: false
Получается, в стандартном приложении «Камера» данная вспышка включается отдельно от камеры. Есть ли еще какой-то способ получить доступ к этому фонарику? Не через Camera или Camera2.
Источник: ru.stackoverflow.com