【问题标题】:How to get once my last location in android?如何获得我在android中的最后一个位置?
【发布时间】:2018-09-19 00:05:18
【问题描述】:

我想知道如何获取我最后的已知位置(GPS 或提供的网络)。我问这个是因为我知道如何获取我的位置,但它会定期更新,我只想要一次,不再需要了。

这是我的实际代码:

@Override
public void onLocationChanged(Location location) {
    Toast.makeText(getContext(),"Cambio posicion "+location.getProvider(),Toast.LENGTH_SHORT).show();

     this.marca.title("Mi ubicacion");
     this.marca.position(new LatLng(location.getLatitude(),location.getLongitude()));

     mMap.addMarker(this.marca);

     this.camara = CameraPosition.builder()
             .bearing(0)
             .zoom(15)
             .target(new LatLng(location.getLatitude(),location.getLongitude()))
             .tilt(30)
             .build();

     mMap.animateCamera(CameraUpdateFactory.newCameraPosition(this.camara));


}

我正在使用 LocationManager。感谢您的帮助。

【问题讨论】:

    标签: android google-maps android-studio android-maps


    【解决方案1】:

    如果您使用的是LocationManager,并且您只想获得最后一个位置一次。您可以在第一次onLocationChangedlike 之后删除收听位置更新

    @Override
    public void onLocationChanged(Location location) {
    
       mLocationManager.removeUpdates(mListener);
    }
    

    我认为可能有帮助的另一个解决方案是。 您可以使用GoogleLocationService 代替LocationManager。那么get last known location就可以用这个方法了

    mFusedLocationClient.getLastLocation()
            .addOnSuccessListener(this, new OnSuccessListener<Location>() {
                @Override
                public void onSuccess(Location location) {
                    // Got last known location
                }
            });
    

    【讨论】:

      【解决方案2】:

      如果您使用的是 Fused Location Provider,您可以在第一个事件之后停止侦听位置更改事件,如下所示:

      @Override
      public void onLocationChanged(Location location) {
          Log.d("onLocationChanged", new Gson().toJson(location));
          stopLocationUpdates();
      }
      
      private void stopLocationUpdates() {
          mFusedLocationClient.removeLocationUpdates(mLocationCallback);
      }
      

      【讨论】:

        猜你喜欢
        • 2016-07-30
        • 1970-01-01
        • 2014-06-29
        • 2016-03-18
        • 2019-09-02
        • 2014-10-18
        • 1970-01-01
        • 2011-01-30
        • 1970-01-01
        相关资源
        最近更新 更多