6

現在の正確な位置が重要な Android アプリケーションを開発しています。GPS 修正が検出されると、次のアクティビティに移動します。

問題は、屋外でテストしたところ、以前の修正の場所を使用しているだけであることがわかったことです。

だから私が求めているのは; getLastKnownLocation 以外に LocationManager から場所を取得するロジックはありますか? 次のように見えない例をまだ見つけていません

    Location location = locationManager.getLastKnownLocation(provider);

ありがとう!

4

3 に答える 3

2

LocationListenerを使用してからlocationManager.requestLocationUpdates()、独自のリスナー実装を渡して呼び出すことができます。

于 2013-07-09T13:08:31.120 に答える
2

公式ガイドのサンプル コードを次に示します(少し変更を加えています)。

// Acquire a reference to the system Location Manager
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

// Define a listener that responds to location updates
LocationListener locationListener = new LocationListener() {
    public void onLocationChanged(Location location) {
         makeUseOfNewLocation(location);
    }

    public void onStatusChanged(String provider, int status, Bundle extras) {}
    public void onProviderEnabled(String provider) {}
    public void onProviderDisabled(String provider) {}
  };

// Register the listener with the Location Manager to receive location updates
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);

ここでは、GPS からの更新を要求するだけで、位置が受信されるとすぐにコールバック コールが返されます。

于 2013-07-09T13:09:11.067 に答える
1

Google has released new Location API, check this link out https://developer.android.com/training/location/index.html,

for you question, you need to implement location update callback to get current location. https://developer.android.com/training/location/receive-location-updates.html

于 2013-07-09T13:11:06.367 に答える