Bildschirm in der App ausschalten

  • 4 Antworten
  • Letztes Antwortdatum
H

Hungrig

Erfahrenes Mitglied
37
Ich möchte den Bildschirm in meiner App auf Knopfdruck gerne ausschalten. Das funktioniert auch soweit gut mit folgendem Code:
Code:
LayoutParams params = getWindow().getAttributes();
        params.screenBrightness = 0;
        getWindow().setAttributes(params);
Das Problem ist nur, dass das Smartphone ein paar Sekunden danach weder auf die Home-Taste noch auf die Power-Taste reagiert. Es sieht so aus, als wäre es abgestürzt.
Wo ist mein Fehler?
 
Meinst du speziell diesen Code?
Code:
WindowManager.LayoutParams params = getWindow().getAttributes(); 
 params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON; 
 params.screenBrightness = 0; 
 getWindow().setAttributes(params);
Der macht auch nichts anderes außer noch das Flag FLAG_KEEP_SCREEN_ON zu löschen. Dieses habe ich jedoch gar nicht gesetzt. Dieses ist nur dazu gedacht, dass der Bildschirm gar nicht mehr ausgeht. Nach ein paar Sekunden (so ca. 10 bis 20) ist der "Spuk" ja vorbei und das Handy reagiert wieder.

Vielleicht brauche ich einfach eine ganz andere Funktion.
 
Ich dachte eher an das hier:
Code:
// Choice 2
PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Your Tag");
wl.acquire();
wl.release();

You will probably need this permission too:

<uses-permission android:name="android.permission.WAKE_LOCK" />
 
Ok, ich beschreibe mal was ich vorhabe:
Ich habe eine Benachrichtigungsactivity geschrieben, die 10 Sekunden lang den Bildschirm anmacht, wenn es etwas zu benachrichtigen gibt. Nach 10 Sekunden soll der Bildschirm wieder ausgehen. Die Activity hat ebenfalls einen Button um den Bildschirm wieder sofort ausgehen zu lassen.
Den Bildschirm angehen lasse ich mit:
Code:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED) | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
Der Code oben war zum ausgehenlassen des Bildschirms gedacht.

Jetzt habe ich das ganze mit Wakelocks versucht. Ich habe folgenden Code:
Code:
 getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
        wakelock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "Tag");

        setContentView(R.layout.benachrichtigungs_activity);
        wakelock.acquire();
Der Bildschirm geht nun aber nicht an.
Eclipse liefert übirgens eine deprecated Warning bei SCREEN_BRIGHT_WAKE_LOCK, man möge doch bitte FLAG_TURN_SCREEN_ON verwenden. An sich funktioniert das ja, nur wenn ich die Activity beende, wird dann der Lock Manager gezeigt und es dauert ein paar Sekunden bis das Display wieder ausgeht. Ich möchte verhindern, dass man den LockManager sieht. Bei Whatsapp funktioniert es ja auch. Nachricht kommt, Display geht an, bleibt für ein paar Sekunden an, geht wieder aus ohne irgendwas anderes angezeigt zu haben.

Wie kriege ich das nun hin.
 

Ähnliche Themen

G
Antworten
0
Aufrufe
148
Gerdchen07
G
G
Antworten
1
Aufrufe
393
Gerdchen07
G
G
Antworten
13
Aufrufe
621
Gerdchen07
G
L
Antworten
3
Aufrufe
660
mips400
mips400
migi01
Antworten
26
Aufrufe
2.040
migi01
migi01
Zurück
Oben Unten