首页 > 解决方案 > 如何获得我在android中的最后一个位置?

问题描述

我想知道如何获得我最后的已知位置(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));


}

我正在使用位置管理器。谢谢你的帮助。

标签: androidgoogle-mapsandroid-studioandroid-maps

解决方案


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

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

private void stopLocationUpdates() {
    mFusedLocationClient.removeLocationUpdates(mLocationCallback);
}

推荐阅读