FusedLocationProviderClient 返回错误的纬度和经度

问题描述

按照 google developers site 中的示例,我使用 FusedLocationProviderClient 来获取最后一个已知位置。

private FusedLocationProviderClient fusedLocationClient;

// ..

@Override
protected void onCreate(Bundle savedInstanceState) {
    // ...

    fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
}

点击按钮时,我调用

fusedLocationClient.getLastLocation()
        .addOnSuccessListener(this,new OnSuccessListener<Location>() {
            @Override
            public void onSuccess(Location location) {
                // Got last kNown location. In some rare situations this can be null.
                if (location != null) {
                    // Logic to handle location object
                    myposition.setText(location.getLatitude() + "," + location.getLongitude());
                    // ...
                }
            }
        });

但是,有时,它会给我一个远离当前设备地理位置的位置。我已经在三种不同的设备上检查过它。我已经声明:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

我应该如何使用 fusedlocation 准确地获得最佳位置?我尝试使用 getcurrentlocation 更改 getlastlocation 但最后一个方法不可用,尽管文档说它可用。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)