Могу ли я изменить интенсивность светодиодов на устройстве Android?

#android #camera #led #flashlight #camera-flash

#Android #камера #светодиод #фонарик #камера-вспышка

Вопрос:

Есть ли способ установить желаемую интенсивность светодиодов? Я знаю, что для включения светодиода, который я использую:

      p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
     mycam.setParameters(p);
  

Но этот код просто включает светодиод. Но есть ли способ установить другую интенсивность светодиода для более яркого освещения или уменьшить интенсивность света?

Комментарии:

1. Я так не думаю, но я не уверен. И если да, то это определенно не будет работать на всех устройствах. Вы также могли бы рассмотреть возможность удаления тега [flash], поскольку он предназначен для Adobe flash, и кто-то может прийти сюда, ожидая, что вопрос будет связан с этим.

2. Мой HTC Evo оснащен функцией «фонарик», которая использует светодиодную «вспышку», и имеет три разных параметра яркости. Тоже работает как чемпион. Итак, должен быть какой -то способ сделать это. Поскольку это встроенное приложение, я полагаю, что оно может зависеть от конкретного устройства.

3. надеюсь, мой ответ поможет вам.

Ответ №1:

У HTC есть альтернативный API, который поддерживает это, однако он доступен только на устройствах HTC Sense, а начиная с Gingerbread они изменили разрешения, так что это доступно только для их приложения Flashlight, а не для сторонних приложений (если вы не используете root).

Но на устройствах HTC 2.2 вы можете использовать это, введя строку в /sys/devices/platform/flashlight.0/leds/flashlight/brightness . Это определяет, горит ли светодиод и насколько он яркий. Для записи с максимальной яркостью "128n" записывайте с половиной яркости "64n" . Легко протестировать из adb shell:

 echo "128" > /sys/devices/platform/flashlight.0/leds/flashlight/brightness
  

И, наконец, отключите его, написав "0n" там.

Комментарии:

1. Спасибо @Kevin TeslaCoil.. Я понял, что вы сказали. Но не знаю, как это реализовать. Можете ли вы показать руководство или туториал, связанный с этим?

2. Пока я получил code.google.com/p/quick-settings/source/browse/trunk /… …..

3. Быстрые настройки, круто. Я думаю, вы просто пропускаете часть n. Вот что я использую для TeslaLED teslacoilsw.com/tmp/SysDevicesLED.java

4. есть ли где-нибудь обзор того, что можно изменить, записав в sysfs?

5. Этот пост был написан 3 года назад. есть ли какие-либо обновления?

Ответ №2:

Короткий ответ: НЕТ.
Более длинный ответ — возможно, на некоторых устройствах используются недокументированные вызовы / параметры. Поддерживаемые режимы вспышки и их значения (и поведение) отличаются от устройства к устройству.

Ваш лучший вариант — запросить поддерживаемые режимы вспышки и надеяться, что они работают так, как задумано.

Ответ №3:

Попробуйте установить различные режимы вспышки, доступные для параметров камеры.

 * FLASH_MODE_OFF
* FLASH_MODE_AUTO
* FLASH_MODE_ON
* FLASH_MODE_RED_EYE
* FLASH_MODE_TORCH
  

вы можете установить режим вспышки с помощью метода setFlashMode ().

Это было сделано только для подсветки камеры. но если вы хотите изменить интенсивность всего экрана. взгляните на приведенный здесь пример.

Ответ №4:

Попробуйте найти код этой функции:

 private native final void native_setParameters(String params);
  

Я верю, что вы узнаете, возможно ли это, когда просмотрите его.

Глядя на public s, это кажется невозможным

Ответ №5:

Я пробовал это на своем Samsung Galaxy S3 Mini. Я не пробовал на других устройствах.

Всякий раз, когда я делаю это (при включенном светодиоде):

 public void changeIntensity()
{
    cam.stopPreview();
    cam.startPreview();
}
  

Светодиод переключается между 3 уровнями интенсивности. Это не имеет смысла, но это работает.