36 votes

Puis-je changer la LED intensité d'un appareil Android?

Est-il un moyen de régler l'intensité des voyants que je désire? Je sais que pour allumer la LED, j'utilise:

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

Mais ce code permet juste sur la LED. Mais est-il possible de définir différentes intensités de la LED pour une lumière plus forte ou à réduire l'intensité de la lumière?

26voto

Kevin TeslaCoil Points 4273

HTC a une alternative API qui prend en charge ce, cependant, c'est seulement sur HTC Sense appareils, et de pain d'épice ils ont changé les permissions de sorte que c'est uniquement pour leur app Lampe de poche, pas de tierce partie de ceux (sauf si vous utilisez de la racine).

Mais sur 2.2 appareils HTC, vous pouvez l'utiliser dans l'écriture d'une chaîne à l' /sys/devices/platform/flashlight.0/leds/flashlight/brightness. Ce paramètre contrôle si le voyant est allumé et comment lumineux qu'il est. Pour un maximum de luminosité écrire "128\n", la moitié de la luminosité de l'écriture "64\n". Facile à tester à partir de la commande adb shell:

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

Et enfin l'éteindre en écrivant "0\n" - il.

5voto

Bref, la réponse est: NON.
Plus de réponse - peut-être sur certains appareils à l'aide de undocumenterd appels / paramètres. Flash prise en charge des modes, et de leur signification (et les comportements) diffère d'un appareil à l'autre.

Votre meilleure option est de requête pris en charge modes de flash, et d'espérer qu'ils fonctionnent comme destiné.

4voto

N-JOY Points 5695

Essayez de définir différents Modes de Flash disponibles pour les paramètres de la Caméra.

* FLASH_MODE_OFF
* FLASH_MODE_AUTO
* FLASH_MODE_ON
* FLASH_MODE_RED_EYE
* FLASH_MODE_TORCH

vous pouvez régler le mode du Flash à l'aide de setFlashMode() la méthode.

C'était juste pour l'appareil-photo de dos de la lumière. mais si vous voulez changer l'écran complet de l'intensité. jetez un oeil à l'exemple ici.

2voto

Sherif elKhatib Points 23987

Essayez de trouver le code de cette fonction:

private native final void native_setParameters(String params);

Je crois que vous allez savoir si c'est possible lorsque vous regardez à travers.

En regardant l' publics, il semble impossible

2voto

MXS Points 31

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

Chaque fois que je fais cela (alors que le voyant est allumé):

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

La LED tourne entre 3 niveaux d'intensité. Il ne fait aucun sens, mais il fonctionne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X