web-dev-qa-db-fra.com

Définir une application spécifique pour ignorer l'optimisation par code dans Android M

Dans la nouvelle version Android M, la fonctionnalité d'optimisation de la batterie arrêtera l'application sous certaines conditions pour économiser la batterie, mais pour les VOIPapps qui doivent rester en vie tout le temps, cette fonctionnalité pose des problèmes au développeur.

Il existe actuellement un moyen de contourner l'optimisation, qui consiste à paramétrer l'application pour ignorer les optimisations, mais un trop grand nombre d'étapes doit être effectué.

Ma question est la suivante: y at-il un moyen d’ignorer l’optimisation d’une page d’application spécifique et comment puis-je savoir si mon application est exclue de l’optimisation?

12
Zheng Wei

AVERTISSEMENT: il semble que Google n'autorise pas les applications du Play Store à le faire. Voir les commentaires ci-dessous.

D'après le fichier AndroidManifest.xml extrait de Settings.apk dans la version MPA44I, il semblerait que vous puissiez faire ce que vous voulez en utilisant quelque chose comme l'intention ci-dessous.

De XML:

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

À partir du 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();
}

Notez que je n'ai pas eu le temps de vérifier cela personnellement, mais l'approche est identique à celle que j'utilise dans l'une de mes applications pour lancer des menus de paramètres spécifiques à une application. Néanmoins, j'espère que cela aide.

6
blunden

Autorisez Google en fonction de quelques conditions Consultez la section "Assistance pour d'autres cas d'utilisation".

ici

Voir aussi Conditions de la liste blanche

3
Artist404

Il n’existe actuellement aucun moyen de désactiver efficacement les optimisations, car cela n’affecte pas le mode assoupi, même si votre application figure sur la liste blanche.

Voir ici: https://stackoverflow.com/a/31721398/4301846

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

0
sec_aw