2011-01-14 3 views
0

Ich schreibe eine App für Android (2.1 +). Und ich muss das Problem mit der Helligkeit der Anzeige lösen. Die App läuft länger und wenn der Benutzer nicht aktiv ist (z. B. 30 Sekunden), sollte die Helligkeit auf 0% gesetzt werden und nach der Berührung des Bildschirms den ursprünglichen Wert wiederhergestellt werden.Stellen Sie die Anzeigehelligkeit nach einiger Zeit der Inaktivität auf 0%. Und zurück zum ursprünglichen Wert nach Benutzereingabe

Jetzt bin ich mit

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "DimScreen"); 

und

@Override 
protected void onPause() { 
    super.onPause(); 
wl.release(); 
} 
@Override 
protected void onResume() { 
super.onResume(); 
wl.acquire(); 
} 

Aber dies wird nicht die Helligkeit auf 0% gesetzt. Und der Batterieverbrauch ist höher. Es ist möglich, die Helligkeit auf 0% einzustellen (kein Ausschalten des Displays) und den ursprünglichen Wert wiederherzustellen, indem Sie einfach den Bildschirm auf tippen? Und das Gerät sollte sich nicht selbst sperren, während die Anwendung ausgeführt wird.

Vielen Dank im Voraus.
kamelot_sk

+0

Könnte sein, dass der Bildschirm keine '0%' Helligkeit unterstützt. Haben Sie überprüft, dass Sie den Bildschirm auf eine niedrigere Helligkeit als die, die Sie mit dem Programm erhalten, dimmen können? (mit der Einstellungen App oder einer Drittanbieter-App) – Soumya

+0

danke, ich habe es jetzt getestet, kann ich nicht niedrigere Helligkeit sogar über manuelle Einstellung erhalten. Also meine Frage ist: Es ist möglich, das Display komplett abzuschalten und durch Berührung zu wecken? (keine Power/Home Taste drücken) – kamelot

Antwort

0

Nur Weg App laufen zu lassen, während der Bildschirm ausgeschaltet ist, ist eine partielle WakeLock zu verwenden, aber das paßt nicht Ihre Anforderung wieder nur auf dem Bildschirm des Drehens durch Berührung und nicht mit der Leistung drücken Taste.

Eine andere Möglichkeit zu tun, was Sie wollen, ist die Verwendung der Methode 'hardware.setScreenBacklight', die einen ganzzahligen Wert eingibt, um den Bildschirm so niedrig wie möglich zu machen. Verwenden Sie außerdem "android: keepScreenOn =" true "" im XML-Ansichtslayout für Ihre Klasse, um sicherzustellen, dass der Bildschirm immer aktiviert ist, während die App geöffnet ist.

+0

Danke, es ist eine gute Idee, aber es wird Bildschirm sofort verdunkeln. Und ich wollte dimmen konstant und flüssig bis auf Null (oder sehr nahe) machen. – kamelot

Verwandte Themen