2015-08-31 15 views
6

È possibile utilizzare l'accesso alla rete quando doze è attivo? Se la mia app ignora l'ottimizzazione della batteria, non va in standby ma è comunque influenzata da doze. Mi sto perdendo qualcosa?Accesso alla rete in modalità sospesa

risposta

5

L'accesso alla rete è disattivato in modalità sospensione, indipendentemente dal fatto che l'applicazione ignori le ottimizzazioni della batteria. L'unico modo per riattivare il dispositivo dalla modalità Cazzuola e ottenere l'accesso alla rete è inviare un messaggio Google Cloud ad alta priorità alla tua applicazione.

Modifica: è possibile consentire a Android di ignorare l'ottimizzazione della batteria per l'applicazione, che disattiva efficacemente la modalità doze per l'applicazione. Tuttavia, questo richiede utilizzando il metodo setExactAndAllowWhileIdle (massimo una sveglia ogni 15 minuti) e interazione con l'utente, che può essere fatto in questo modo:

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); 
+2

"... che disabilita efficacemente modalità sonnecchiare per la vostra applicazione" - No , purtroppo questo non è il caso. La whitelist della tua app per "ignorare l'ottimizzazione della batteria" non influisce sul suo comportamento in modalità doze. vedere qui: https://code.google.com/p/android-developer-preview/issues/detail?id=2225#c11 –

+0

Quando si utilizza il metodo di gestione degli avvisi _setExactAndAllowWhileIdle_ e la disattivazione degli avvisi di ottimizzazione della batteria si spegnerà come previsto. – M66B

+0

setExactAndAllowWhileIdle funzionerà allo stesso modo in modalità Doze, indipendentemente dal fatto che "ignora le ottimizzazioni" sia abilitato o meno (forse stai parlando di "standby delle app" che è un altro problema). L'opzione "ignora le ottimizzazioni" è assolutamente fuorviante, in quanto non impedisce a un'app di essere influenzata dalla modalità Doze. Vedi il link nel mio primo commento, che è una dichiarazione di un membro del team di sviluppo (Citazione: "... mettere un'app sulla whitelist non cambia il loro comportamento"). Per maggiori informazioni segui la discussione lì. –

Problemi correlati