5

私の質問はかなり簡単です。私は "Doze-proof"にすることができるように私のアプリのベストプラクティスを知りたいと思います。これは、Android Nがより多くの場合のシナリオでDozeを適用するようになるにつれて、より関連性が高まっています。Android Dozeモード - Bluetooth

Doze Documentationネットワークアクセス言及部分がある読んでいる間:Dozeモードで

に、システムは、ネットワークとCPU集約型サービスへ アプリケーションのアクセスを制限することによって、電池を節約しよう。また、 アプリがネットワークにアクセスすることを防ぎ、ジョブ、同期、および 標準アラームを延期します。私は、ネットワークアクセスに該当Buetoothは、正しいことですかと考えてい

私はMarshmallow(またはAndroid N)対応デバイスを所有していないため、EmulatorはBluetoothのやりとりを許可していないため、Dozeモードでのアプリケーションの動作を実際にテストすることはできません。

実行中のBluetooth接続はDozeモードで終了しますか? Bluetooth ClassicとLEのどちらにも同じことが適用されますか? Bluetooth A2DP搭載ヘッドセットはどうですか?

私のアプリはこの接続を維持する必要があります。そうしないと、コア機能が壊れます。

あなたのデバイスがBluetoothリモートデバイスに接続される必要があるような場合には、ユーザーが嫌になっても何らかの例外があります。

私が知っているがドーズホワイトリストが存在するが、それは、いくつかのケースでは、アプリが

はあなたの助けをありがとう、それはAPI 23以下のデバイス上で同じように動作させないかもしれないと思われます!

+0

私は試しませんでしたが、私はブルートゥースが影響を受けているとは思わない – greywolf82

+0

@ greywolf82あなたのご意見ありがとうございます、これは有望そうです!時間と手段があれば試してみることができますか?私は本当に感謝します。ありがとう! – Mackovich

+0

ホワイトリストは、あなたのアプリがネットワークにアクセスすることを許可し、部分的なWakelockを保持します。その他の居眠り制限はまだ適用されています –

答えて

0

dozeはbluetooth自体に制限はありませんが、意味のあることは何もしないように見えます.CPUをオンにする必要があり、深いところではwake lockは無視されます。

アプリの中核機能の場合は、ユーザーにwhitelistのアプリを尋ねることができます。これにより、partial wake locksを付与し、CPUをオンにすることができます。

Foreground servicesもまた、どんな居眠り制限からも免除されるので、これはもう一つの透明な方法です。

+0

フォアグラウンドサービスはバックグラウンドを実行しているアプリの殺害を免除され、深い眠り眠りモードとは関係ありません。 – behelit