android - 如何获得我在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));
}
我正在使用位置管理器。谢谢你的帮助。
解决方案
如果您使用的是 Fused Location Provider,则可以在第一个事件之后停止侦听位置更改事件,如下所示:
@Override
public void onLocationChanged(Location location) {
Log.d("onLocationChanged", new Gson().toJson(location));
stopLocationUpdates();
}
private void stopLocationUpdates() {
mFusedLocationClient.removeLocationUpdates(mLocationCallback);
}
推荐阅读
- php - Laravel:在通知中添加收件人姓名
- c# - c# 模态对话框中的棱镜区域
- r - 在 R 中使用 barplot 时出错:宽度/2 错误:二元运算符的非数字参数
- arrays - 返回 SQL Server 中的基本 JSON 字符串数组
- r - 基于上一个时间段的用户 ID 的分组平均值
- excel - 如何创建一个自动滚动并循环回到开头的 Excel 宏?
- wordpress - Timber 中如何使用 wordpress 标准
- docker - nanoserver:“错误:在 Docker 中找不到模块 node.exe”
- mysql - MySql 查询由多列和多个计数组合在一起
- javascript - 在 for 循环中获取数据(不是索引)