android - fusedLocationClient.getLastLocation 总是返回 NULL
问题描述
我实现了 Lib android this中使用的方法,请参阅:
fusedLocationProviderClient.getLastLocation().addOnSuccessListener(new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
if(location != null) {
localidade = location;
Toast.makeText(getApplicationContext(), "Local correto", Toast.LENGTH_LONG).show();
}
Toast.makeText(getApplicationContext(), "Localidade vazia", Toast.LENGTH_LONG).show();
}
});
但是,在 OnSuccess 中,结果始终为 null,我正在我的手机(9.0 android)上测试 LOCAL(gps) 模式并仍然返回 null,我的清单具有必要的权限:<uses-permission android: name = "android.permission .ACCESS_FINE_LOCATION "/>
在我看来,什么都没有错,那为什么总是 null 呢?
解决方案
最后已知位置是用户注册的已知位置。如果您在位置页面上阅读它指出最后已知位置在某些情况下可能为空;在这些情况下,建议您请求位置更新。以下内容来自页面:
在以下情况下,位置对象可以为空:
位置在设备设置中被禁用。结果可能是无效的,甚至是先前检索到的最后一个位置,因为禁用该位置也会清除缓存。设备从不记录自己的位置,这种情况发生在设备是新设备或恢复出厂设置时。设备上的 Google Play 服务平台已重新启动,并且在服务重新启动后没有活动的 Fused Location Provider API 客户端请求位置。为避免这种情况,请创建新客户并请求位置更新。
推荐阅读
- html - Google Script Web App:无法在“DOMWindow”上执行“postMessage”:提供的目标原点与接收窗口的原点不匹配
- bash - 如何对齐列文件中的内容
- python - 在curses中显示带有尾随空格的文本
- php - 如何将随机路由(404)定向到laravel中的一个视图页面?
- r - 按列名划分每个单元格
- python-3.x - 我正在循环一个数据框pypandas。我想计算特定列中的当前值
- python - 如何从没有索引的列中获取数据
- elasticsearch - 是否可以免费使用 elasticsearch、lostash 和 Kibana 来创建我自己的产品并销售?
- node.js - Redis 有时需要很长时间才能加载数据
- algorithmic-trading - 如何在 Tradingview Pine Script v4 策略中设置追踪止损?