16

Wie in der Dokumentation angegeben:Wie schalte ich ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS Absicht richtig aus?

„Eine App die REQUEST_IGNORE_BATTERY_OPTIMIZATIONS Erlaubnis hält, kann ein Systemdialog auslösen der Benutzer hinzufügen, die App auf die Whitelist direkt auf die Einstellungen ohne gehen, lassen die App eine ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS Intent feuert auf. triggert den Dialog. "

Kann jemand mir den richtigen Weg erklären, diese Absicht zu feuern?

Antwort

20
Intent intent = new Intent(); 
String packageName = context.getPackageName(); 
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); 
if (pm.isIgnoringBatteryOptimizations(packageName)) 
    intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS); 
else { 
    intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); 
    intent.setData(Uri.parse("package:" + packageName)); 
} 
context.startActivity(intent); 

Weitere Informationen finden Sie unter this answer.

+12

Seien Sie vorsichtig damit - meine App wurde gerade von Google Play ohne vorherige Ankündigung für die Anforderung von "REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" sogar suspendiert Allerdings ist das Ausschließen der App von Batterieoptimierungen für die Funktion meiner App entscheidend, und ich kann GCM aus technischen Gründen nicht verwenden. –

+0

@EladNava Haben Sie an Google über das Problem geschrieben? – milosmns

+1

@milosmns Ich habe und warte auf ihre Antwort. Meine App ist momentan gesperrt und nicht erreichbar, da ich auf ihr Urteil warte. Ich scheine die erste Person zu sein, die über "suspended" für die Anforderung von "REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" geschrieben hat, für ** vollkommen legitime Gründe (wichtig für app + GCM technische Schwierigkeiten). Dies sind die zwei Bedingungen, die in ihren [docs] (https://developer.android.com/training/monitoring-device-state/doze-standby.html#support_for_other_use_cases) aufgeführt sind, um die Erlaubnis anzufordern. Wird aktualisiert, wenn sie ihre Entscheidung treffen. –

1

Zur Suspension von Google Play Store, Its Better zu vermeiden User Battery Optimierungseinstellungen zu nehmen, für manuell Anwendung auf White-Liste

Intent myIntent = new Intent(); 
myIntent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS); 
startActivity(myIntent); 

auch brauchen, um Hinzufügen

Es spielt keine
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/> 

Berechtigung in der Manifest-Datei

+0

Ohne die Berechtigung tut startActivity() nichts – KgaboL