Я пытаюсь использовать светодиодный фонарик камеры в виджетах. Я нашел несколько тем по этой теме (т.е. тот, о котором уже упоминалось выше..), теперь я пытаюсь контролировать свет, используя:
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 stil использует Android 2.2. Я вижу, что произошли некоторые изменения между 2.2 и 2.3.
Комментарий: Я знаю, что это должно работать как-то, поскольку я нашел другие приложения на рынке, которые отлично работают с Galaxy Tab.
Комментарий 2: Если я установил cam.setParameters(p); и прямо спросите камеру о текущем состоянии с помощью getFlashMode(), он корректно возвращает FLASH_MODE_TORCH. Однако, если я отпущу камеру и снова открою ее, она вернет FLASH_MODE_OFF. Это почти так, как если бы объект Camera признавал запрос, но на самом деле не передает его аппаратным средствам??
-
После комментария Konstantins я удалил cam.release(); часть. Он прав, настройки не сохраняются, если вы отпустите камеру. Если вы снова используете cam.open(), вы получите новый экземпляр с выключенным светом. Тем не менее, свет все еще не работает на вкладке галактики. Так что, я думаю, это трудно держать свет, если вы пытаетесь контролировать его через виджет. Как только фоновая служба будет завершена, объект камеры автоматически отпустится, и, следовательно, свет снова выключится. Мои вопросы все еще остаются, особенно, почему камера не включается в первую очередь.