基本的に、信号が見つからないときにGPSがスキャンするのを止めようとしています。これにはいくつかのSOがありますが、特にやりたいことではありません。
私はサービスで次のように設定しています。
private void grabsensor() {
this.locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.removeUpdates(this);
List<String> enabledProviders = this.locationManager.getProviders(true);
for (String provider:enabledProviders){
this.locationManager.requestLocationUpdates(provider, 5000, 0, this);
}
}
30 メートル未満の精度でネットワークを読み取ったときに GPS をスキャンしないように APP を考案しようとしています。バッテリーを節約します。
だから私は次のことをしようとしました:
// Smart location handling algorithm
if ((int) location.getAccuracy() < 30) {
this.locationManager.removeUpdates(this);
}
これによりすべてのプロバイダーが削除されることを除いて、GPS プロバイダーを削除したいだけで、次に呼び出されたときに同じ if ステートメントが false の場合は GPS プロバイダーが追加されます。