Recherche…


Remarques

Le mode Doze est un ensemble de modifications et de règles qui mettent votre téléphone en veille lorsqu'il est inactif.

Sur Android 6.0 Marshmallow: le mode Doze est activé lorsque l'écran est éteint, l'appareil est à l'arrêt et fonctionne sur batterie. Doze Mode sur Marshmallow Comme vous pouvez le voir dans le diagramme ci-dessus, lorsque le mode Doze est activé, l'appareil ne reçoit pas de wakelocks, d'accès réseau, de travaux / synchronisations, d'alarmes, de scans GPS / Wi-Fi.

Sur Android 7.0 Nougat: Imaginez que votre téléphone soit dans votre poche (l'écran est éteint, qu'il fonctionne sur batterie, mais qu'il ne soit pas immobile), vous pouvez également obtenir les fonctionnalités du mode Doze, non? C'est pourquoi Google a annoncé le mode Doze étendu: il fonctionne lorsque l'écran est éteint, mais pas immobile. Doze Mode sur Nougat Comme vous pouvez le voir dans ce diagramme, seuls les accès réseau et les travaux / synchronisations sont désactivés. Notez que Doze étendu ne remplace pas le premier mode Doze. Ils travaillent ensemble, en fonction de l’état du téléphone (fixe ou non). Voici les distinctions: Doze Mode distinctions Les développeurs doivent être conscients que:

  • Doze peut conserver un accès temporaire à wakelock et au réseau pour les messages GCM (Google Cloud Messaging) prioritaires (dans les cas où l'utilisateur a besoin d'une notification immédiate);
  • Les services de premier plan (tels que la lecture de musique) continueront de fonctionner.

Vous pouvez trouver plus d'informations ici: https://developer.android.com/training/monitoring-device-state/doze-standby.html

Exclure l'application de l'utilisation du mode veille

  1. Ouvrir les paramètres du téléphone
  2. batterie ouverte
  3. ouvrir le menu et sélectionner "optimisation de la batterie"
  4. dans le menu déroulant, sélectionnez "toutes les applications"
  5. sélectionnez l'application que vous souhaitez ajouter à la liste blanche
  6. sélectionnez "ne pas optimiser"

Maintenant, cette application affichera sous des applications non optimisées.

Une application peut vérifier si elle est en liste blanche en appelant isIgnoringBatteryOptimizations()

Liste blanche d'une application Android par programmation

La liste blanche ne désactivera pas le mode veille pour votre application, mais vous pouvez le faire en utilisant les verrous de réseau et de veille.

La liste blanche d'une application Android par programmation peut être effectuée comme suit:

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);
}

Le résultat du démarrage de l'activité ci-dessus peut être vérifié par le code suivant:

@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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow