Taschenlampen App blockiert Kamera?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Du rufst 

camera.release();

beim Verlassen der Activity nur auf, wenn der Blitz eingeschaltet ist 

Ist der Blitz gerade aus dann ist:

 if (lighton == true) {

nicht erfüllt und die Camera wird nicht freigegeben und ist dadurch für andere Apps blockiert.

Ich würde vorschlagen die Camera IMMER in onResume zu öffnen

und IMMER in onPause mit 

camera.release();

wieder freizugeben - egal ob der Blitz gerade an oder aus ist.

Denn solange deine Taschenlampe App im Vordergrund ist willst Du ja die Kontrolle über die Kamera haben...

Bei OnResume macht es dann ggf. Sinn den Blitz vor Aufruf von camera.release() abzuschalten falls eingeschaltet ist

TKW00 
Fragesteller
 05.04.2016, 17:58

Vielen Dank es hat funktioniert :)

0
phigeek  14.05.2016, 07:39

Gute Antwort.

Nur schreibt bitte nicht (wie in Lehrbüchern aus den 70er Jahren, wo es in einigen Sprachen leider nicht anders möglich war)

if(isChecked == true) // Das ist der Tod jedes großen Progarmmes

schreibt stattdessen

if(isChecked)

oder

if(! isLighton)

Warum wohl? Bei den heute oftmals durch Cola und Chips verklebten Tastaturen geschieht ab und zu folgendes:

if(isChecked = true) // und voila: verloren!

ein

if(true == isChecked) kann könnte man ja gerade noch verstehen.

Ebenso in der Sprache C oder C++:

niemals

if(x == 4)

aber immer:

if(4 == x)

(warum wohl?)

0