fusedLocationClient.getLastLocation总是返回NULL。

问题描述 投票:0回答:1

我实现了在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?

android android-location android-gps fusedlocationproviderapi
1个回答
0
投票

最后已知位置是用户注册的已知位置。如果你阅读位置页面,它指出最后已知位置在某些情况下可能是空的;在这些情况下,建议你请求位置更新。以下是该页面的内容。

在以下情况下,位置对象可能为空。

在设备设置中,位置被禁用。其结果可能是最后一个位置被提前检索,因为禁用位置也会清除缓存。设备从未记录过自己的位置,这种情况发生在设备是新设备或恢复到出厂设置时。设备上的Google Play服务平台已经重启,服务重启后,没有活跃的Fused Location Provider API客户端请求位置。为了避免这种情况,请创建一个新客户并请求位置更新。

© www.soinside.com 2019 - 2024. All rights reserved.