Pregunta ¿Puedo cambiar la intensidad del LED de un dispositivo Android?


¿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?


32
2018-05-11 20:26


origen


Respuestas:


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 para /sys/devices/platform/flashlight.0/leds/flashlight/brightness. Esto controla si el LED está encendido y qué tan brillante es. Para una escritura de brillo máximo "128\n", medio brillo escribir "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" ahí.


24
2017-08-05 16:32



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.


5
2017-08-05 11:02



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. echar un vistazo al ejemplo aquí.


4
2017-08-02 07:11



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 a la publics, parece imposible


2
2017-08-05 09:03



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.


2
2017-12-06 10:31