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

¿Hay una manera de ajustar 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 sólo enciende el LED. ¿Pero hay una manera de fijar intensidades diferentes al LED para una luz más fuerte o para reducir la intensidad de la luz?

HTC tiene una API alternativa que soporta esto, sin embargo es sólo en dispositivos HTC Sense, y como de Gingerbread han cambiado los permisos por lo que es sólo para su aplicación de linterna, no de terceros (a menos que utilice root).

Pero en los dispositivos HTC 2.2 puedes usarlo escribiendo una cadena en /sys/devices/platform/flashlight.0/leds/flashlight/brightness . Esto controla si el LED está encendido y lo brillante que es. Para obtener el máximo brillo, escriba "128\n" , medio brillo, escriba "64\n" . Fácil de probar desde el shell de adb:

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

Y finalmente apáguelo escribiendo "0\n" allí.

La respuesta corta es: NO.
Respuesta más larga – tal vez en algunos dispositivos que usan las llamadas / parámetros de undocumenterd. Los modos de flash compatibles, y sus significados (y comportamientos) difieren de un dispositivo a otro.

Su mejor opción es consultar los modos de flash compatibles, y esperamos que funcionen de la manera deseada.

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 

Puede configurar el modo Flash utilizando el método setFlashMode ().

Esto fue sólo para la cámara de luz de fondo. Pero si desea cambiar la intensidad completa de la pantalla. Echa un vistazo al ejemplo aquí.

Intente encontrar el código de esta función:

 private native final void native_setParameters(String params); 

Creo que usted descubrirá si esto es posible cuando usted mira a través de él.

Mirando al public s, parece imposible

He intentado esto en mi Samsung Galaxy S3 Mini. No he probado en otros dispositivos.

Siempre que hago esto (mientras que el led está ENCENDIDO):

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

El LED gira entre 3 niveles de intensidad. No tiene sentido, pero funciona.

  • El LED de notificación de Firebase parpadea
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.