webentwicklung-frage-antwort-db.com.de

Bestimmte App festlegen, um die Optimierung durch Code in Android M zu ignorieren

In der neuen Version von Android M stoppt die Batterieoptimierungsfunktion die App unter bestimmten Bedingungen, um die Batterie zu schonen. Bei VOIPapps, die ständig am Leben bleiben müssen, führt diese Funktion zu Problemen für den Entwickler.

Derzeit gibt es eine Möglichkeit, die Optimierung zu umgehen, indem die App so eingestellt ist, dass Optimierungen ignoriert werden. Es müssen jedoch zu viele Schritte ausgeführt werden.

Meine Frage ist: Gibt es eine Möglichkeit, die Optimierungsseite einer bestimmten App zu ignorieren, und wie kann ich feststellen, ob meine App von der Optimierung ausgeschlossen ist?

12
Zheng Wei

WARNUNG: Es scheint, dass Google Apps im Play Store dies nicht zulässt. Siehe die Kommentare unten.

Basierend auf der AndroidManifest.xml-Datei, die im MPA44I-Build aus der Datei Settings.apk extrahiert wurde, scheint es, als könnten Sie in der Lage sein zu tun, was Sie wollen, etwa mit der folgenden Absicht.

Aus XML:

<intent
    Android:action="Android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"
    Android:targetPackage="com.Android.settings"
    Android:data="package:PUT_YOUR_PACKAGE_NAME_HERE" />

Vom Code:

try {
    Intent intent = new Intent(Android.provider.Settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
    intent.setData(Uri.parse("package:PUT_YOUR_PACKAGE_NAME_HERE"));
    startActivity(intent);

} catch (ActivityNotFoundException e) {
    e.printStackTrace();
}

Ich habe nicht die Zeit gehabt, dies in der Praxis selbst zu überprüfen, aber der Ansatz ist derselbe, den ich in einer meiner Apps zum Starten von app-spezifischen Einstellungsmenüs verwende. Trotzdem hoffe ich, dass es hilft.

6
blunden

Google Erlauben Sie dies basierend auf wenigen Bedingungen Siehe Abschnitt "Unterstützung für andere Anwendungsfälle".

Hier

Prüfen Sie auch Whitelist-Bedingungen

3
Artist404

Momentan gibt es keine Möglichkeit, Optimierungen effektiv zu deaktivieren, da dies den Doze-Modus nicht beeinflusst - selbst wenn sich Ihre App auf der Whitelist befindet.

Siehe hier: https://stackoverflow.com/a/31721398/4301846

und hier: https://code.google.com/p/Android-developer-preview/issues/detail?id=2225

0
sec_aw