2016-02-02 6 views
9

Ist es möglich, zu erkennen, wenn ein Gerät in Doze/Standby eintritt? Ich konnte in der Android-Dokumentation nichts über einen möglichen Broadcast Receiver oder Listener finden, den ich aktivieren oder erstellen könnte, um Benachrichtigungen über diese Übergänge zu erhalten.Erkennung des Dotzustands

Antwort

16

Ich glaube, die Intent Sie suchen ist ACTION_DEVICE_IDLE_MODE_CHANGED. Aus der Dokumentation:

Absicht, die gesendet wird, wenn sich der Status von isDeviceIdleMode() ändert. Diese Übertragung wird nur an registrierte Empfänger gesendet.

Die Dokumentation für isDeviceIdlemode ist wie folgt:

Gibt true zurück, wenn das Gerät gerade im Standby-Modus ist. Dies passiert, wenn ein Gerät längere Zeit ungenutzt und unbewegt gelegen ist, so dass es sich entscheidet, in einen niedrigeren Stromverbrauchszustand zu gehen. Dies kann Dinge beinhalten, wie den Netzwerkzugriff auf Apps zu deaktivieren. Mit ACTION_DEVICE_IDLE_MODE_CHANGED können Sie auf Änderungen an diesem Status überwachen.

Returns

Gibt true zurück, wenn zur Zeit im aktiven Gerät im Leerlauf-Modus, sonst falsch. Dies ist, wenn Leerlaufmodus Einschränkungen aktiv angewendet werden; Es wird false zurückgegeben, wenn sich das Gerät in einem langfristigen Leerlaufmodus befindet, aber derzeit ein Wartungsfenster ausgeführt wird, in dem Einschränkungen aufgehoben wurden.

+0

interessant? soll es auch im Doze-Modus den richtigen Wert anzeigen? vorausgesetzt, dass irgendeine CPU-Arbeit tatsächlich aufhört [um diese Methode sogar auszuführen], von dem, was ich weiß. –

+0

sieht aus wie Dösen und Leerlauf sind nicht gleich. so verwirrend wie das sein kann –

+0

es ist in der Tat verwirrend. Wird diese Absicht ausgelöst, bevor das Telefon in den Doze-Modus geht? – lelloman

Verwandte Themen