Suche…


Bemerkungen

Der Doze-Modus ist ein Satz von Änderungen und Regeln, die das Telefon in den Ruhezustand versetzen, wenn es nicht verwendet wird.

Unter Android 6.0 Marshmallow: Der Doze-Modus wird aktiviert, nachdem der Bildschirm ausgeschaltet ist, das Gerät steht und der Akku leer ist. Doze-Modus auf Marshmallow Wie Sie im obigen Diagramm sehen können, erhält das Gerät bei Aktivierung des Doze-Modus keine Wakelocks, Netzwerkzugriff, Jobs / Synchronisierungen, Alarme, GPS- / WLAN-Scans.

Unter Android 7.0 Nougat: Stellen Sie sich vor, wenn sich Ihr Telefon in Ihrer Tasche befindet (der Bildschirm ist ausgeschaltet, der Akku läuft, aber es ist nicht stationär), möchten Sie vielleicht auch die Doze-Modus-Funktionen nutzen, oder? Deshalb hat Google den Extended Doze-Modus angekündigt: Er läuft, wenn der Bildschirm ausgeschaltet ist, aber nicht stationär. Doze-Modus für Nougat Wie Sie in diesem Diagramm sehen können, sind nur Netzwerkzugriff und Jobs / Synchronisierungen deaktiviert. Beachten Sie, dass die erweiterte Doze den ersten Doze-Modus nicht ersetzt. Sie arbeiten zusammen, abhängig vom Telefonstatus (stationär oder nicht). Hier sind die Unterschiede: Unterschiede im Doze-Modus Entwickler sollten sich bewusst sein, dass:

  • Doze behält möglicherweise temporären Wakelock- und Netzwerkzugriff für GCM-Nachrichten (Google Cloud Messaging) mit hoher Priorität bei (wenn der Benutzer eine sofortige Benachrichtigung benötigt).
  • Vordergrunddienste (z. B. Musikwiedergabe) funktionieren weiterhin.

Weitere Informationen finden Sie hier: https://developer.android.com/training/monitoring-device-state/doze-standby.html

App vom Doze-Modus ausschließen

  1. Telefoneinstellungen öffnen
  2. Batterie öffnen
  3. Menü öffnen und "Batterieoptimierung" auswählen
  4. Wählen Sie im Dropdown-Menü "Alle Apps" aus.
  5. Wählen Sie die App aus, die Sie auf die Positivliste setzen möchten
  6. wähle "nicht optimieren"

Diese App wird jetzt unter nicht optimierten Apps angezeigt.

Eine App kann durch Aufrufen von isIgnoringBatteryOptimizations() prüfen, ob sie als Whitelist isIgnoringBatteryOptimizations()

Whitelisting einer Android-Anwendung programmgesteuert

Bei der Whitelisting-Funktion wird der Doze-Modus für Ihre App nicht deaktiviert. Sie können dies jedoch über Netzwerk- und Hold-Wake-Sperren tun.

Das programmgesteuerte Whitelisting einer Android-Anwendung kann wie folgt durchgeführt werden:

boolean isIgnoringBatteryOptimizations = pm.isIgnoringBatteryOptimizations(getPackageName());
if(!isIgnoringBatteryOptimizations){
    Intent intent = new Intent();
    intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
    intent.setData(Uri.parse("package:" + getPackageName()));
    startActivityForResult(intent, MY_IGNORE_OPTIMIZATION_REQUEST);
}

Das Ergebnis des Startens der obigen Aktivität kann durch den folgenden Code überprüft werden:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == MY_IGNORE_OPTIMIZATION_REQUEST) {
        PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
        boolean isIgnoringBatteryOptimizations = pm.isIgnoringBatteryOptimizations(getPackageName());
        if(isIgnoringBatteryOptimizations){
            // Ignoring battery optimization
        }else{
           // Not ignoring battery optimization
        }
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow