android - inventor - como activar led de notificaciones
¿Puedo cambiar la intensidad del LED de un dispositivo Android? (5)
¿Hay alguna manera de configurar la intensidad del LED que deseo? Sé que para encender el LED que uso:
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
mycam.setParameters(p);
Pero este código solo enciende el LED. Pero, ¿hay alguna manera de establecer diferentes intensidades para el LED para una luz más fuerte o para reducir la intensidad de la luz?
HTC tiene una API alternativa que lo admite, sin embargo, solo está en dispositivos HTC Sense y, a partir de Gingerbread, han cambiado los permisos, por lo que solo es para su aplicación Flashlight, no para terceros (a menos que use root).
Pero en 2.2 dispositivos HTC, puede usarlo escribiendo una cadena en /sys/devices/platform/flashlight.0/leds/flashlight/brightness
. Esto controla si el LED está encendido y qué tan brillante es. Para un brillo máximo, escriba "128/n"
, medio brillo escriba "64/n"
. Fácil de probar desde adb shell:
echo "128" > /sys/devices/platform/flashlight.0/leds/flashlight/brightness
Y finalmente apágalo escribiendo "0/n"
allí.
Intenta encontrar el código de esta función:
private native final void native_setParameters(String params);
Creo que descubrirás si esto es posible cuando mires a través de él.
Mirando al public
, parece imposible
Intente establecer diferentes modos de flash disponibles para los parámetros de la cámara.
* FLASH_MODE_OFF
* FLASH_MODE_AUTO
* FLASH_MODE_ON
* FLASH_MODE_RED_EYE
* FLASH_MODE_TORCH
puedes configurar el modo Flash usando el método setFlashMode ().
Esto fue solo para la luz de fondo de la cámara. pero si quieres cambiar la intensidad de la pantalla completa. echa un vistazo al ejemplo here.
La respuesta corta es: NO.
Respuesta más larga: tal vez en algunos dispositivos que usan llamadas / parámetros no documentados. Los modos de flash admitidos y sus significados (y comportamientos) difieren de un dispositivo a otro.
Su mejor opción es consultar los modos de flash compatibles y esperar que funcionen como se espera.
Lo he intentado en mi Samsung Galaxy S3 Mini. No he probado con otros dispositivos.
Cada vez que hago esto (mientras el led está encendido):
public void changeIntensity()
{
cam.stopPreview();
cam.startPreview();
}
El LED gira entre 3 niveles de intensidad. No tiene sentido, pero funciona.