Можно ли изменить интенсивность светодиодов на устройстве Android?
Есть ли способ установить желаемую интенсивность светодиодов? Я знаю, что для включения светодиода я использую:
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
mycam.setParameters(p);
Но этот код просто включает светодиод. Но есть ли способ установить различные интенсивности светодиодов для более сильного освещения или уменьшения интенсивности света?
6 ответов
У HTC есть альтернативный API, который поддерживает это, однако он доступен только для устройств HTC Sense, и с Gingerbread они изменили разрешения, поэтому они предназначены только для приложения Flashlight, а не для сторонних приложений (если вы не используете root).
Но на устройствах HTC 2.2 вы можете использовать его, написав строку /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"
там.
Краткий ответ: НЕТ.
Более длинный ответ - возможно, на некоторых устройствах, использующих недокументированные вызовы / параметры. Поддерживаемые режимы флэш-памяти и их значения (и поведение) различаются в зависимости от устройства.
Лучший вариант - запросить поддерживаемые режимы флэш-памяти и надеяться, что они будут работать по назначению.
Попробуйте установить различные режимы вспышки, доступные для параметров камеры.
* FLASH_MODE_OFF
* FLASH_MODE_AUTO
* FLASH_MODE_ON
* FLASH_MODE_RED_EYE
* FLASH_MODE_TORCH
Вы можете установить режим Flash, используя метод setFlashMode().
Это было только для задней подсветки камеры. но если вы хотите изменить полную интенсивность экрана. посмотрите на пример здесь.
Я пробовал это в моем Samsung Galaxy S3 Mini. Я не пробовал на других устройствах.
Всякий раз, когда я делаю это (когда светодиод включен):
public void changeIntensity()
{
cam.stopPreview();
cam.startPreview();
}
Светодиод вращается между 3 уровнями интенсивности. Это не имеет смысла, но это работает.
Попробуйте найти код этой функции:
private native final void native_setParameters(String params);
Я полагаю, что вы узнаете, если это возможно, когда вы посмотрите через это.
Глядя на public
с, кажется невозможным
Эта функция официально доступна на устройствах Android под управлением Android 13 или более поздней версии .