タイムアウトのあるユーザーの位置を見つける必要があるので、次のようなコードを記述しました
LocationListenerを開始します
GPSLocationListener = new LocationListener() { @Override public void onLocationChanged(Location location) { _timerGPSLocation.cancel(); } @Override public void onStatusChanged(String provider, int status, Bundle b) { } @Override public void onProviderEnabled(String s) { } @Override public void onProviderDisabled(String s) { } }; _locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTime, minDistance, _GPSLocationListener);
`
タイムアウトのタイマーを設定する
_timerGPSLocation = new Timer(); _timerGPSLocation.schedule( new TimerTask() { @Override public void run() { _locationManager.removeUpdates(_GPSLocationListener); } }, (long)(timeout*1000) );
これを何度も行うと(座標を読み取ってタイムアウト付きのタイマーを設定しようとすると)、GPSがいくつかの衛星に接続し、正しい位置を取得できると思います。これを行うためのより良い方法はありますか?タイムアウト時に_locationManager.removeUpdatesを呼び出すと、接続されているすべての衛星が削除されますか?
編集:
私の目標は、GPSを定期的に(5分)読み取ることです。GPS読み取りを使用して位置を取得しようとしている間もタイムアウトを設定する必要があります。タイムアウト後にロケーションが読み取られない場合は、ロケーションリスナーを停止する必要があります。私はここのコードリストを使用してこれを達成しました。
ここで私の質問は、LocationListenerがタイムアウトになるために削除すると、GPSと衛星間の「確認応答」が失われるかどうかです。