FusedLocationProviderClient在Android Pie 9.0中返回错误的纬度经度

时间:2019-06-05 10:28:01

标签: android location

我仅在Android Pie中使用FusedLocationProviderClient获取纬度经度时遇到问题,我在Android 9.0(Pie)版本以下获得了正确的位置

每次我调用getLocation()FusedLocationProviderClient都会提供同样长的时间。

  mFusedLocationClient.getLastLocation().addOnSuccessListener(new OnSuccessListener<Location>() {
                    @Override
                    public void onSuccess(Location location) {
                        if (location != null) {
                            wayLatitude = location.getLatitude();
                            wayLongitude = location.getLongitude();
                            Log.e("Location11", "" + String.format(Locale.US, "%s - %s", wayLatitude, wayLongitude));

                        } else {
                            mFusedLocationClient.requestLocationUpdates(locationRequest, locationCallback, null);
                        }
                    }
                });

我每次都得到同样的时间。 喜欢 纬度-28.303303303303 经度77.411411411

2 个答案:

答案 0 :(得分:1)

使用FusedLocationProviderApi并将LocationRequest优先级设置为PRIORITY_HIGH_ACCURACY

这是用于精确位置提取的最新API,Google建议使用相同的API。

检查准确性详细信息(Android Location Providers - GPS or Network Provider?

基本上,Google Play服务API具有通过融合GPS + NetworkProvider +被动提供商来获得准确位置的智能。

答案 1 :(得分:1)

同时提供权限:

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

ACCESS_FINE_LOCATION将给出正确的结果。