Могу ли я изменить интенсивность светодиодов на устройстве Android?
Есть ли способ установить интенсивность светодиода, который я желаю? Я знаю, что для включения светодиода я использую:
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
mycam.setParameters(p);
Но этот код просто включает светодиод. Но есть ли способ установить различные интенсивности для светодиода для более сильного света или уменьшить интенсивность света?
Ответы
Ответ 1
У HTC есть альтернативный API, который поддерживает это, однако он работает только на устройствах HTC Sense, а с Gingerbread они меняют разрешения, поэтому они предназначены только для своего приложения Flashlight, а не для сторонних (если вы не используете root).
Но на 2.2 устройствах HTC вы можете использовать его, написав строку в /sys/devices/platform/flashlight.0/leds/flashlight/brightness
. Это означает, что светодиод включен и насколько он яркий. Для максимальной яркости пишите "128\n"
, половина яркости записывается "64\n"
. Легко проверить из оболочки adb:
echo "128" > /sys/devices/platform/flashlight.0/leds/flashlight/brightness
И, наконец, отключите его, написав "0\n"
там.
Ответ 2
Короткий ответ: NO.
Более длинный ответ - возможно, на некоторых устройствах, использующих вызовы/параметры unocumenterd.
Поддерживаемые режимы вспышки и их значения (и поведения) отличаются от устройства к устройству.
Ваш лучший вариант - запросить поддерживаемые режимы вспышки и надеяться, что они будут работать как намеренные.
Ответ 3
Попробуйте установить различные режимы вспышки, доступные для параметров камеры.
* FLASH_MODE_OFF
* FLASH_MODE_AUTO
* FLASH_MODE_ON
* FLASH_MODE_RED_EYE
* FLASH_MODE_TORCH
вы можете установить режим Flash с помощью метода 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 уровнями интенсивности. Это не имеет никакого смысла, но оно работает.