我仅在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
答案 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
将给出正确的结果。