37 Stimmen

Kann ich die LED-Intensität bei einem Android-Gerät ändern?

Gibt es eine Möglichkeit, die gewünschte LED-Intensität einzustellen? Ich weiß, dass ich die LED mit einschalten kann:

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

Aber dieser Code schaltet nur die LED ein. Aber gibt es eine Möglichkeit, verschiedene Intensitäten auf die LED für ein stärkeres Licht oder die Lichtintensität zu reduzieren setzen?

0 Stimmen

Das glaube ich nicht, aber ich bin mir nicht sicher. Und wenn ja, wird es definitiv nicht auf allen Geräten funktionieren. Sie könnten auch in Betracht ziehen, den [flash]-Tag zu entfernen, da er für Adobe Flash ist und jemand hierher kommen könnte, der erwartet, dass die Frage damit zusammenhängt.

2 Stimmen

Mein HTC Evo verfügt über eine "Taschenlampen"-Funktion, die den LED-"Blitz" verwendet und drei verschiedene Helligkeitsstufen hat. Funktioniert auch wie ein Champion. So muss es sein algunos Weise zu tun. Da es sich um eine integrierte App handelt, könnte es aber auch gerätespezifisch sein.

0 Stimmen

Ich hoffe, dass meine Antwort Ihnen helfen wird.

27voto

Kevin TeslaCoil Punkte 9917

HTC hat eine alternative API, die dies unterstützt, aber es ist nur auf HTC Sense-Geräte, und wie von Gingerbread haben sie die Berechtigungen geändert, so dass es nur für ihre Flashlight app, nicht von Dritten (es sei denn, Sie verwenden Root).

Auf 2.2-HTC-Geräten können Sie es jedoch verwenden, indem Sie einen String in /sys/devices/platform/flashlight.0/leds/flashlight/brightness . Damit wird gesteuert, ob die LED leuchtet und wie hell sie ist. Für maximale Helligkeit schreiben Sie "128\n" , halbe Helligkeit schreiben "64\n" . Einfach über die adb-Shell zu testen:

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

Und schließlich schalten Sie es aus, indem Sie schreiben "0\n" dort.

0 Stimmen

Danke @Kevin TeslaCoil.. Ich habe verstanden, was du gesagt hast. Aber nicht wissen, wie man es zu implementieren. Können Sie eine Anleitung oder ein Tutorial zu diesem Thema zeigen?

0 Stimmen

0 Stimmen

Schnelleinstellungen, cool. Ich glaube, Sie vermissen nur die \n Teil. Das verwende ich für TeslaLED teslacoilsw.com/tmp/SysDevicesLED.java

5voto

Konstantin Pribluda Punkte 12198

Die kurze Antwort lautet: NEIN.
Längere Antwort - vielleicht auf einigen Geräten mit undocumenterd-Aufrufen / Parametern. Die unterstützten Flash-Modi und ihre Bedeutungen (und Verhaltensweisen) unterscheiden sich von Gerät zu Gerät.

Die beste Möglichkeit ist, die unterstützten Blitzmodi abzufragen und zu hoffen, dass sie wie beabsichtigt funktionieren.

4voto

N-JOY Punkte 10272

Versuchen Sie, die verschiedenen für die Kameraparameter verfügbaren Blitzmodi einzustellen.

* FLASH_MODE_OFF
* FLASH_MODE_AUTO
* FLASH_MODE_ON
* FLASH_MODE_RED_EYE
* FLASH_MODE_TORCH

können Sie den Flash-Modus mit der Methode setFlashMode() einstellen.

Dies war nur für das Gegenlicht der Kamera, aber wenn Sie die gesamte Bildschirmintensität ändern möchten, sehen Sie sich das Beispiel an hier.

2voto

Sherif elKhatib Punkte 45328

Versuchen Sie, den Code für diese Funktion zu finden:

private native final void native_setParameters(String params);

Ich glaube, dass Sie herausfinden werden, ob dies möglich ist, wenn Sie es durchsehen.

Die Betrachtung der public s, scheint es unmöglich

2voto

MXS Punkte 121

Ich habe dies auf meinem Samsung Galaxy S3 Mini ausprobiert. Ich habe nicht auf anderen Geräten versucht.

Immer wenn ich dies tue (während die LED eingeschaltet ist):

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

Die LED wechselt zwischen 3 Intensitätsstufen. Es macht keinen Sinn, aber es funktioniert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X