Android - Bildschirm ausschalten, ohne dass Schlaf/lock-Bildschirm - Schalten mit Touchscreen
Ich habe versucht, einen Weg zu finden, um das display auszuschalten, und aufwachen aus der Benutzer berührt den Touchscreen.
Das Gerät ist in einer embedded-Umgebung, wo das Gerät ist ein tablet und der Benutzer hat keinen Zugriff auf irgendetwas außer der touch-screen (keine Tasten).
Es mit Strom verbunden ist, so dass der Akku nicht ein problem sein, aber wenn ich sehe keine Aktivität, die ich will, um den Bildschirm auszuschalten, so dass es nicht Ihnen ins Gesicht starrt den ganzen Tag und verringert nicht die Lebensdauer der LCD-Hintergrundbeleuchtung.
Pflege ich einen wakelock permanent und entscheiden, Wann Sie schlafen selbst.
Das problem ist, dass wenn ich schalten Sie den Bildschirm mit :
WindowManager.LayoutParams params = getWindow().getAttributes();
params.screenBrightness = 0;
getWindow().setAttributes(params);
Die Tätigkeit wird unterbrochen und gestoppt. Und das Gerät reagiert nicht auf eine Berührung, um ihn zu aktivieren. Drücken Sie die power-Taste. An diesem Punkt ist das "slide to unlock" angezeigt.
Möchte ich das display auszuschalten, und bleiben Sie dann laufen, damit ich erkennen kann, eine touch-screen-event und schalten Sie das display wieder auf.
Ich habe auch versucht, dreht das display auf eine Helligkeit von 0,1, und die funktioniert auf einigen Geräten, aber das Gerät, ich brauche es, um zu arbeiten auf, nur "Dimmt" das display.
Ich auch so probiert:
//First Remove my FULL wakelock
//then aquire a partial wake lock (which should turn off the display)
PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Your Tag");
wl.acquire();
jedoch mit dieser Methode nicht das display auszuschalten.
InformationsquelleAutor der Frage NebulaSleuth | 2012-03-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Endlich kapiert. Hoffe, es hilft. 🙂
Bekommen eine Instanz der WindowManager.
WindowManager windowManager = (WindowManager) Class.forName("android.view.WindowManagerImpl").getMethod("getDefault", new Class[0]).invoke(null, new Object[0]);
Erstellen Sie ein Vollbild-layout, xml(layout-Parameter
fill_parent
)Stellen Sie Ihre Ansicht als nicht anklickbar, nicht Isoliertes, nicht lange anklickbar, etc so, dass die Berührung durch geführt wird, um Ihre app und die app erkennen kann.
view.setFocusable(false);
view.setClickable(false);
view.setKeepScreenOn(false);
view.setLongClickable(false);
view.setFocusableInTouchMode(false);
Erstellen Sie eine layout-parameter des Typs
android.view.WindowManager.LayoutParams
.LayoutParams layoutParams = new LayoutParams();
Set layout-parameter wie Höhe, Breite etc
Wichtigen Schritt: Sie können einstellen, welcher Anteil der Helligkeit, die Sie benötigen.
view.setBackgroundDrawable(getBackgroundDrawable(i));
Schließlich fügen Sie anzeigen, um windowManager, die Sie zuvor erstellt haben.
windowManager.addView(view, layoutParams);
Hinweis: Sie müssen
SYSTEM_ALERT_WINDOW
Erlaubnis zu legen, die eine überlagerung auf dem Bildschirm.Haben getestet und es funktioniert. Lassen Sie mich wissen, wenn Sie nicht weiterkommen.
InformationsquelleAutor der Antwort Bharath Lakshman
Wenn Sie services verwenden, wake-lock, aber wenn Sie es tun, von Aktivität-Seite die bessere Idee to use-flags zu erwerben Flagge.
Können Sie deaktivieren Sie diese flags wie und gegen andere Flaggen, dim Bildschirm oder unscharf.
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Hoffe, dies wird Ihr problem lösen. Optional Erkunden Sie andere Optionen aus
http://developer.android.com/reference/android/view/Window.html
Gibt es eine weitere Fyi.. Aufruf versteckt API in android zu drehen screen off
InformationsquelleAutor der Antwort kodeshpa
Ich weiß nicht, ob das hilft, aber du könntest einfach mit einem wake-lock, so dass Ihr scren hält an und zeigt eine Bildansicht zeigt ein Schwarzes Bild
InformationsquelleAutor der Antwort Alexander Fuchs
Können Sie tun, eine Sache zu Erwerben, Teilweise Wakelock, und schalten Sie den Bildschirm Aus mit :
InformationsquelleAutor der Antwort Sanober Malik
@NebulaSleuth
So, seine schon eine Weile, irgendwelche Fortschritte?
Wenn Sie noch auf Sie: warum nicht-Schraube-Tasten und touch-screens, vielleicht binden wake-up Gyroskop?
War ich in der Hoffnung, etwas zu verwenden, wie dies zumindest für Handys mit Tasten und auslagern der wakeup entweder die Lautstärketasten oder das Gyroskop...
InformationsquelleAutor der Antwort helena4