Как включить вспышку на планшете
Получить через App Store Прочитать этот пост в нашем приложении!
Как программно включить флэш-память камеры в Android?
Я хочу включить только флэш-память камеры (не с предварительным просмотром камеры) программно в Android. Я googled для этого, но помощь, которую я нашел, связала меня с этой страницей

У кого-нибудь есть ссылки или пример кода?
11 ответов
Для этого вам нужно:
Проверьте, доступна ли вспышка или нет?
Если да, то выключите / вкл.
Если нет, то вы можете делать все, что в соответствии с вашим приложением. потребности
Для Проверка наличия вспышки в устройстве:
Вы можете использовать следующие
который вернет true, если доступна вспышка, false, если нет.
Для включения / выключения фонарика:
Я googled и получил это о android.permission.FLASHLIGHT. Разрешение Android-манифеста выглядит многообещающим:
Затем используйте Camera и установите Camera.Parameters. Основной параметр, используемый здесь, - FLASH_MODE_TORCH.
Фрагмент кода для включения вспышки камеры.
Фрагмент кода для отключения подсветки камеры.
Я просто нашел проект, который использует это разрешение. Проверьте код src быстрой настройки. здесь http://code.google.com/p/quick-settings/ (Примечание: эта ссылка сейчас не работает)
Update6 Вы также можете попытаться добавить SurfaceView, как описано в этом ответе, светодиодный фонарик Galaxy Nexus, управляемый каким API? Это похоже на решение, которое работает на многих телефонах.
Я нашел альтернативную ссылку (для выше неработающих ссылок): http://www.java2s.com/Open-Source/Android/Tools/quick-settings/com.bwx.bequick.flashlight.htm Теперь вы можете использовать эту ссылку. [Обновить: 14/9/2012 Эта ссылка сейчас не работает]
Пример, показывающий, как включить светодиод на Motorola Droid: http://code.google.com/p/droidled/
Другой код с открытым исходным кодом:
Обновление 3 (Виджет для включения / выключения камеры)
Если вы хотите разработать виджет, который включает / выключает вашу камеру, то вы должны указать мой ответ Виджет для включения / выключения фонаря камеры в android ..
Если вы хотите установить интенсивность света, выходящего из светодиода камеры, вы можете обратиться. Могу ли я изменить интенсивность светодиодов на устройстве Android? полный пост .. Обратите внимание, что только укоренившиеся устройства HTC поддерживают эту функцию.
Также возникают проблемы при включении / выключении фонарика. например. для устройств, не имеющих FLASH_MODE_TORCH или даже если они есть, тогда фонарик не включается и т. д.
Как правило, Samsung создает множество проблем.
Вы можете ссылаться на проблемы в приведенном ниже списке:
По моему опыту, если ваше приложение предназначено для работы как в портретной, так и в альбомной ориентации, вам нужно объявить переменную кулачку статичной. В противном случае onDestroy (), который вызывается при переключении ориентации, уничтожает его, но не освобождает камеру, поэтому повторное открытие невозможно.
я должен был показать эту строку
предложенные выше строки не работали для меня.
Я получил подсветку AutoFlash с помощью простых трех шагов.
- Я только что добавил разрешение камеры и Flash manifest.xml файл
В коде камеры выполните этот способ.
Build + Run -> Теперь перейдите в область «Тусклый свет» и «Снимок», вы должны получить автоматическую вспышку, если устройство поддерживает.
Android Lollipop представил Camera2 API и устарел предыдущий API камеры. Однако использование устаревшего API для включения Flash все еще работает и намного проще, чем использование нового API.
Кажется, что новый API предназначен для использования в специальных полнофункциональных приложениях для камер и что его архитекторы действительно не рассматривают более простые варианты использования, такие как включение фонарика. Чтобы сделать это сейчас, нужно получить CameraManager, создать CaptureSession с манекеном Surface и, наконец, создать и запустить CaptureRequest. Обработка исключений, очистка ресурсов и длинные обратные вызовы включены!
Чтобы посмотреть, как включить фонарик на Lollipop и новее, взгляните на FlashlightController в проекте AOSP (попробуйте найти новейшие, как старые API использования, которые были изменены). Не забудьте установить необходимые разрешения.
Android Marshmallow наконец представила простой способ включения вспышки с setTorchMode.
В API 23 или выше (Android M, 6.0)
Люди все еще поддерживают мой ответ, поэтому я решил опубликовать дополнительный код. Это было мое решение проблемы в тот же день:
Полный код для Android-флеш-накопителя
Существуют различные способы доступа к Camera Flash в разных версиях Android. Немногие API перестали работать на Lollipop, а затем снова были изменены в Marshmallow. Чтобы преодолеть это, я создал простую библиотеку, которую я использовал в немногих моих проектах, и это дает хорошие результаты. Он по-прежнему неполный, но вы можете попробовать проверить код и найти недостающие фрагменты. Вот ссылка - NoobCameraFlash.
Если вы просто хотите интегрировать в свой код, для этого вы можете использовать gradle. Вот инструкции (взяты непосредственно из Readme) -
Шаг 1. Добавьте репозиторий JitPack в файл сборки. Добавьте его в свой root build.gradle в конце репозиториев:
Шаг 2. Добавьте зависимость
Применение
Инициализируйте Singleton NoobCameraManager.
Вы можете дополнительно установить Log Log для ведения журнала отладки. В журнале используется библиотека LumberJack. По умолчанию LogLevel - LogLevel.None
После этого вам просто нужно вызвать синглтон, чтобы включить или выключить вспышку камеры.
Перед инициализацией NoobCameraManager вы должны позаботиться о разрешениях времени выполнения для доступа к Camera самостоятельно. В версии 0.1.2 или ранее мы использовали поддержку разрешений непосредственно из библиотеки, но из-за зависимости от объекта Activity мы должны удалить ее.
Легко также переключать Flash
Я реализовал эту функцию в своем приложении через фрагменты, используя SurfaceView. Ссылка на этот вопрос stackoverflow и его ответ можно найти здесь
Надеюсь это поможет 🙂
В Marshmallow и выше, «setTorchMode () CameraManager, кажется, является ответом. Это работает для меня:
Когда я обновил версию SDK, вспышка камеры перестает работать с исключением нулевого указателя. Я обнаружил, что мне пришлось установить targetSDKVersion в 22 в build.gradle. Когда я попытался 23, приложение разбилось.
Вы также можете использовать следующий код для выключения вспышки.