あなたの質問は、実際には「デバイスのバッテリーを節約しながら正確な位置測定を行うにはどうすればよいですか?」のようです。
バッテリーを節約し、適切なポジショニングを行うには、主に 2 つの方法があります。
- GPS を使用しないでください (実際にはバッテリーを大量に消費します)。
- ポーリング アクションの間隔を大きく設定する
Wi-Fi と携帯電話のデータのみを使用して、非常に良好な位置 (半径 40 ~ 150 m、多くの場合 GPS よりも優れています) を取得できます。コード内のプロバイダー選択基準として、「ACCURACY_COARSE」、「ACCURACY_LOW」、および/または「POWER_LOW」を選択するだけです。
Google Developer の Web サイトで次のリンクを参照してください。
特に、次の 2 つが挙げられます。
ユーザーの測定速度に基づいて、バッテリーを節約するポーリング間隔を選択/設定できます。ユーザーが歩いている場合 (時速 5 km 未満)、アラートを見逃すリスクなしに 30 ~ 60 秒の間隔を使用できます。ユーザーが車で移動している場合 (時速 50 km 以上)、1 ~ 10 秒の間隔を設定する必要があります。通常、位置空間の精度は非常に悪い (100 m 程度) ため、非常に高い時間(速度) 精度でポイントを「キャッチ」しようとしてもほとんど意味がありません。
これについては、Google のドキュメントも参照してください。
いずれにせよ、Google は、独自のコードを使用してバッテリーを節約しようとせず、getProviders 基準に依存することを明示的に提案しています。