3 votes

Activez les services de vibration et de localisation en mode d'économie de la batterie.

J'aime utiliser l'économiseur de batterie sur mon téléphone Android car il prolonge considérablement la batterie. Cependant, il y a une application que j'utilise et que je voudrais exempter de deux des éléments que l'économiseur de batterie désactive : les vibrations et les services de localisation.

Je suis d'accord avec l'utilisation de la batterie pour cette seule application, mais je veux empêcher toutes les autres applications d'utiliser la batterie.

Comment puis-je y parvenir ?

5voto

Andrew T. Points 12017

Les vibrations et le GPS sont considérés comme des services système, et non des applications. Ainsi, ils ne peuvent pas être exemptés sur le paramètre habituel lorsque l'économiseur de batterie est activé. Cependant, depuis Android 8.0 Oreo il est possible de modifier certains paramètres de l'économiseur de batterie.

Ceci est lié à la BATTERY_SAVER_CONSTANTS les paramètres globaux qui peuvent être modifiés par ADB.

/**
         * Battery Saver specific settings
         * This is encoded as a key=value list, separated by commas. Ex:
         *
         * "vibration_disabled=true,adjust_brightness_factor=0.5"
         *
         * The following keys are supported:
         *
         * <pre>
         * advertise_is_enabled              (boolean)
         * datasaver_disabled                (boolean)
         * enable_night_mode                 (boolean)
         * launch_boost_disabled             (boolean)
         * vibration_disabled                (boolean)
         * animation_disabled                (boolean)
         * soundtrigger_disabled             (boolean)
         * fullbackup_deferred               (boolean)
         * keyvaluebackup_deferred           (boolean)
         * firewall_disabled                 (boolean)
         * gps_mode                          (int)
         * adjust_brightness_disabled        (boolean)
         * adjust_brightness_factor          (float)
         * force_all_apps_standby            (boolean)
         * force_background_check            (boolean)
         * optional_sensors_disabled         (boolean)
         * aod_disabled                      (boolean)
         * quick_doze_enabled                (boolean)
         * </pre>
         * @hide
         * @see com.android.server.power.batterysaver.BatterySaverPolicy
         */
        @UnsupportedAppUsage
        @TestApi
        public static final String BATTERY_SAVER_CONSTANTS = "battery_saver_constants";

Pour les valeurs entières possibles de gps_mode :

/**
     * Either the location providers shouldn't be affected by battery saver,
     * or battery saver is off.
     */
    public static final int LOCATION_MODE_NO_CHANGE = 0;

    /**
     * In this mode, the GPS based location provider should be disabled when battery saver is on and
     * the device is non-interactive.
     */
    public static final int LOCATION_MODE_GPS_DISABLED_WHEN_SCREEN_OFF = 1;

    /**
     * All location providers should be disabled when battery saver is on and
     * the device is non-interactive.
     */
    public static final int LOCATION_MODE_ALL_DISABLED_WHEN_SCREEN_OFF = 2;

    /**
     * In this mode, all the location providers will be kept available, but location fixes
     * should only be provided to foreground apps.
     */
    public static final int LOCATION_MODE_FOREGROUND_ONLY = 3;

    /**
     * In this mode, location will not be turned off, but LocationManager will throttle all
     * requests to providers when the device is non-interactive.
     */
    public static final int LOCATION_MODE_THROTTLE_REQUESTS_WHEN_SCREEN_OFF = 4;

Comme indiqué sur XDA Developers, Comment personnaliser le mode économie de batterie dans Android 8.0 Oreo ? :

  1. Installer ADB y Pilotes USB si nécessaire.
  2. Connectez l'appareil Android au PC par USB et attendez que l'appareil soit détecté.
  3. Ouvrez une invite de commande et tapez adb devices pour être sûr que l'ADB le détecte.
  4. Type adb shell
  5. Décider quelles valeurs devaient être modifiées. La saisie de plusieurs clés est prise en charge avec une séparation par des virgules. Pour cette question spécifique : vibration_disabled=false,gps_mode=0
  6. Type settings put global battery_saver_constants <new_value> . Notez que le changement est permanent, donc pour l'annuler, l'utilisateur doit saisir manuellement les valeurs opposées à la place.

Sur les appareils enracinés, il est également possible d'exécuter la commande settings directement depuis l'appareil en utilisant des applications de terminal comme Termux.

0 votes

C'est très utile, merci ! Je pense que pour mon utilisation, gps_mode=3 fonctionnerait bien, car mon application exécute un service qui est au premier plan pour les événements GPS uniquement lorsque je lui demande de s'exécuter, tandis que d'autres applications qui fonctionnent en arrière-plan seront refusées et n'utiliseront pas de batterie supplémentaire.

0 votes

Je l'ai testé et cela fonctionne parfaitement. J'apprécie cette réponse géniale et je vais attendre pour accepter jusqu'à ce que je puisse vous donner quelques points de prime pour cela :-)

0 votes

Après l'avoir utilisé pendant plus d'une journée, j'ai remarqué que mon application avait cessé de produire des vibrations d'extinction d'écran en mode d'économie de la batterie. J'ai ensuite vérifié le GPS et il ne se verrouillait plus et ne signalait plus les positions. Mais j'ai reconnecté l'USB et réexécuté la commande adb et maintenant il fonctionne à nouveau. Peut-être que c'est moins permanent que vous ne le pensiez ? Je n'ai pas installé de mises à jour dans l'intervalle.

1voto

Rehan Khwaja Points 332

En supposant que vous avez un Pixel 3XL et que vous utilisez l'économie de batterie au niveau du système,

De : https://dontkillmyapp.com/google

Tarte et pré-tarte

Si vous constatez des problèmes de traitement en arrière-plan, il est préférable que votre application ne soit pas optimisée pour la batterie afin qu'elle bénéficie de la liberté nécessaire pour fonctionner en arrière-plan.

Pour ça :

  • Allez dans Paramètres > Apps > Votre application > Avancé > Batterie > Optimisation de la batterie.
  • Changer la vue en Toutes les applications
  • Recherchez votre application
  • Choisir de ne pas optimiser

Dans les commentaires :

mon application n'est déjà pas optimisée, mais la vibration ne fonctionne pas, ni le GPS avec l'écran éteint lorsque l'économiseur d'énergie est activé.

Donc, comme indiqué dans : https://support.google.com/pixelphone/answer/6187458?hl=en

Ce qui se passe lorsque l'économiseur d'énergie est activé :

  • Les applications ne rafraîchissent leur contenu, comme les e-mails ou les actualités, que lorsque vous les consultez.
  • Les services de localisation s'arrêtent lorsque votre écran est éteint.
  • Les applications cessent de faire des choses en arrière-plan, à moins que vous ne désactiviez l'optimisation de la batterie.
  • Votre téléphone arrête d'écouter "Ok Google". À la place, vous devez serrer votre téléphone ou toucher l'icône Assistant.
  • Le thème sombre s'active.
  • Votre téléphone et vos notifications peuvent être retardés.

Donc votre application ne recevant pas de services de GPS/localisation est couverte par Economiseur d'énergie Pour ce qui est de la raison pour laquelle les vibrations ne fonctionnent pas, je ne peux rien dire sans savoir pourquoi elles se produisent, à moins qu'elles ne soient liées à l'un des éléments ci-dessus, comme l'emplacement ou un processus de fond.

0 votes

Mon application n'est déjà pas optimisée, mais la vibration ne fonctionne pas, ni le GPS avec l'écran éteint lorsque l'économiseur d'énergie est activé.

0 votes

@Michael Voir la mise à jour pour répondre.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X