Я пытаюсь использовать светодиодный фонарик камеры в виджете.Я нашел несколько тем на эту тему (например, тот, который упоминается позже ...), сейчас я пытаюсь управлять освещением, используя:
Camera cam = Camera.open();
Parameters p = cam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(p);
cam.release();
В AndroidManifest.xmlпробовал разные разрешения, в настоящее время у меня есть:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />
Я тестирую это на своей Galaxy Tab, так как у меня нет других Android-устройств под рукой: индикатор не включается.Теперь у меня есть несколько вопросов:
- Можно ли проверить поведение светодиодного индикатора в эмуляторе?
- Я что-то здесь не так делаю?
- Согласно этому вопросу, который касается той же проблемы, он работает по-другому на вкладке Galaxy.Как?
- И, наконец, если он работает по-другому, я начинаю задумываться, является ли это просто Galaxy Tab или другие устройства тоже используют другие методы.Это было бы трудно проверить, и мне это кажется довольно странным.
Спасибо за понимание!
Кстати, я быстро протестировал с quick-settings , который упоминается здесь несколько раз.Фонарик также не работает с быстрыми настройками.
Обратите внимание, что стиль Galaxy Tab использует Android 2.2.Я вижу, что между 2.2 и 2.3 произошли некоторые изменения.
Комментарий: я знаю, что это должно как-то работать, так как я нашел на рынке другие приложения, которые отлично работают с Galaxy Tab.
Комментарий2: если я установлю cam.setParameters (p);и напрямую запрашивает у камеры текущее состояние с помощью getFlashMode (), она корректно возвращает FLASH_MODE_TORCH.Однако, если я отпускаю камеру и снова открываю ее, она возвращает FLASH_MODE_OFF.Это похоже на то, что объект Camera подтверждает запрос, но не передает его аппаратному обеспечению!?
-
После комментария Константина я удалил cam.release ();часть.Он прав, настройки не сохранятся, если отпустить камеру.Если вы снова используете cam.open (), вы получите новый экземпляр с выключенным светом.Хотя свет все еще не работает на вкладке галактики.Итак, я думаю, что трудно держать свет включенным, если вы пытаетесь управлять им с помощью виджета.Как только фоновая служба завершена, объект камеры автоматически высвобождается, и поэтому свет снова выключается.Мои вопросы все еще остаются, особенно почему камера не включается в первую очередь.