web-dev-qa-db-fra.com

Puis-je modifier l'intensité LED d'un appareil Android?

Existe-t-il un moyen de régler l'intensité LED que je souhaite? Je sais que pour allumer la LED que j'utilise:

     p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
     mycam.setParameters(p);

Mais ce code allume simplement la LED. Mais existe-t-il un moyen de régler différentes intensités de la LED pour une lumière plus forte ou de réduire l'intensité lumineuse?

35
Buda Gavril

HTC a une API alternative qui prend en charge cela, mais ce n'est que sur les appareils HTC Sense, et à partir de Gingerbread, ils ont changé les autorisations donc c'est seulement pour leur application Flashlight, pas celles de tiers (sauf si vous utilisez root).

Mais sur les appareils HTC 2.2, vous pouvez l'utiliser en écrivant une chaîne dans /sys/devices/platform/flashlight.0/leds/flashlight/brightness. Cela contrôle si la LED est allumée et sa luminosité. Pour une luminosité maximale, écrivez "128\n", écriture demi-luminosité "64\n". Facile à tester depuis adb Shell:

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

Et enfin, désactivez-le en écrivant "0\n" Là.

26
Kevin TeslaCoil

La réponse courte est: NON.
Réponse plus longue - peut-être sur certains appareils utilisant des appels/paramètres non documentés. Les modes flash pris en charge et leurs significations (et comportements) diffèrent d'un appareil à l'autre.

Votre meilleure option consiste à interroger les modes flash pris en charge et à espérer qu'ils fonctionnent comme prévu.

5

Essayez de définir différents modes de flash disponibles pour les paramètres de l'appareil photo.

* FLASH_MODE_OFF
* FLASH_MODE_AUTO
* FLASH_MODE_ON
* FLASH_MODE_RED_EYE
* FLASH_MODE_TORCH

vous pouvez définir le mode Flash à l'aide de la méthode setFlashMode ().

C'était juste pour le rétro-éclairage de la caméra. mais si vous souhaitez modifier l'intensité de l'écran complet. jetez un oeil à l'exemple ici.

4
N-JOY

J'ai essayé cela sur mon Samsung Galaxy S3 Mini. Je n'ai pas essayé sur d'autres appareils.

Chaque fois que je fais cela (alors que la led est allumée):

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

La LED tourne entre 3 niveaux d'intensité. Cela n'a aucun sens, mais cela fonctionne.

2
MXS