2

私はこれについて多くの相反する情報を読みました。

モードでFused Location API を使用するとしますPRIORITY_HIGH_ACCURACY。たとえば、間隔を 10 分と 1 分に設定すると、大きな違いが生じるでしょうか? 1時間対10秒?もしそうなら、どのくらい劇的ですか?

内部でどのように機能するのかわからないので、高精度の位置情報が必要な場合にバッテリーを節約するために何ができるか疑問に思っています (ポーリングの頻度が相対的に低いことは問題ではありません)。

https://developer.android.com/training/monitoring-device-state/index.html

開発者サイトには、バッテリーを節約する方法に関するアドバイスがありますが、ポーリング頻度がバッテリー寿命にどの程度影響するかについての具体的な情報は提供されていないようです。

サービスを有効にすると、常に GPS がオンになるため、常にバッテリーが使用されます (そのため、間隔は人工的であり、プログラム上の理由のみで発生します)。

ありがとう!

4

1 に答える 1

1

Fused Location API については、GPS をオフにしたり、オンのままレポート間隔を調整したりするかどうかはわかりませんが、更新の間に GPS をオフにするか、他の多くの人が電力の消耗について不満を言うと思います。

Android Location Service の機能については、間隔が 0 より大きい場合、GPS をオフにし、電話を更新間でアイドル状態にすることができます ( LocationManagerServiceのソースを確認してください)。さまざまな Android フォンでかなりの電力テストを行ったところ、CPU をアイドル状態にしないようにすると、かなりの量の電力が消費されることがわかりました。GPS の消費電力 (CPU のアイドリングを防止する) を追加すると、適切な消費電力 (一部のデバイスでは画面が消費する電力の約 50%) が見られます。

最後に、私は Gabe Sechan に同意し、精度がバッテリーの消耗に値するかどうかを選択するようアドバイスする必要があります. 次の基本的な質問を自問してください。

  • ユーザーが通りのどちら側にいるのかを知る必要がありますか?

    はいの場合は GPS を使用し、そうでない場合はネットワークまたは低精度の位置情報を使用します。

  • ユーザーの位置を確認する頻度はどれくらいですか?

    1 分に 1 回程度必要な場合は、そのように間隔を設定します。彼らが一般的なエリアを離れるときだけ気にする場合は、ジオフェンスを設定するか、ネットワークの場所を使用してください。また、他のアプリからの位置情報の更新をリッスンして、アプリをいつ更新するかについてよりスマートにすることもできます。

  • X 時間以内にユーザーの位置を取得できない場合、この更新を完全にスキップできますか?

    可能であれば、更新ロジックにタイムアウト機能を追加してください。そうでない場合は、アプリのロジックを再評価することを強くお勧めします。

于 2017-03-08T18:19:36.223 に答える