新しいAndroid M
ビルド、バッテリー最適化機能は、特定の条件でアプリを停止してバッテリーを節約しますが、VOIP
appsは常に稼働している必要があるため、この機能は開発者に問題を引き起こします。
現在、最適化をバイパスする1つの方法があります。これは、最適化を無視するようにアプリを設定しますが、実行する必要のある手順が多すぎます。
私の質問は、特定のアプリの最適化ページを無視するためにジャンプする方法はありますか、そして自分のアプリが最適化から除外されているかどうかをどうやって知ることができますか?
警告:GoogleではPlayストアのアプリがこれを行うことを許可していないようです。以下のコメントを参照してください。
MPA44IビルドのSettings.apkから抽出されたAndroidManifest.xmlに基づいて、以下のような目的で、あなたが望むことを実行できるように見えるかもしれません。
XMLから:
<intent
Android:action="Android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"
Android:targetPackage="com.Android.settings"
Android:data="package:PUT_YOUR_PACKAGE_NAME_HERE" />
コードから:
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();
}
これを実際に確認する時間はありませんでしたが、アプローチはアプリ固有の設定メニューを起動するためにアプリの1つで使用するのと同じです。それでも、それが役に立てば幸いです。
アプリがホワイトリストに登録されている場合でも、Dozeモードには影響しないため、最適化を効果的にオプトアウトする方法は現在ありません。
ここを参照してください: https://stackoverflow.com/a/31721398/4301846
およびここ: https://code.google.com/p/Android-developer-preview/issues/detail?id=2225