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 VOIP
apps 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?
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.
Autorisez Google en fonction de quelques conditions Consultez la section "Assistance pour d'autres cas d'utilisation".
Voir aussi Conditions de la liste blanche
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