我实现了在Lib android中使用的方法 这个,请看。
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安卓)上测试,打开了LOCAL(gps)模式,仍然返回null,我的manisfest有必要的权限。<uses-permission android: name = "android.permission .ACCESS_FINE_LOCATION "/>
我的manisfest有必要的权限: 在我看来没有什么问题,为什么总是null?
最后已知位置是用户注册的已知位置。如果你阅读位置页面,它指出最后已知位置在某些情况下可能是空的;在这些情况下,建议你请求位置更新。以下是该页面的内容。
在以下情况下,位置对象可能为空。
在设备设置中,位置被禁用。其结果可能是最后一个位置被提前检索,因为禁用位置也会清除缓存。设备从未记录过自己的位置,这种情况发生在设备是新设备或恢复到出厂设置时。设备上的Google Play服务平台已经重启,服务重启后,没有活跃的Fused Location Provider API客户端请求位置。为了避免这种情况,请创建一个新客户并请求位置更新。