web-dev-qa-db-ja.com

Android Mのコードによる最適化を無視するように特定のアプリを設定します

新しいAndroid Mビルド、バッテリー最適化機能は、特定の条件でアプリを停止してバッテリーを節約しますが、VOIPappsは常に稼働している必要があるため、この機能は開発者に問題を引き起こします。

現在、最適化をバイパスする1つの方法があります。これは、最適化を無視するようにアプリを設定しますが、実行する必要のある手順が多すぎます。

私の質問は、特定のアプリの最適化ページを無視するためにジャンプする方法はありますか、そして自分のアプリが最適化から除外されているかどうかをどうやって知ることができますか?

13
Zheng Wei

警告: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つで使用するのと同じです。それでも、それが役に立てば幸いです。

7
blunden

Googleはいくつかの条件に基づいてこれを許可します「その他の使用例のサポート」セクションを確認してください

ここ

また、 ホワイトリスト条件 も確認してください。

3
Artist404

アプリがホワイトリストに登録されている場合でも、Dozeモードには影響しないため、最適化を効果的にオプトアウトする方法は現在ありません。

ここを参照してください: https://stackoverflow.com/a/31721398/4301846

およびここ: https://code.google.com/p/Android-developer-preview/issues/detail?id=2225

0
sec_aw