【发布时间】:2019-01-15 08:30:41
【问题描述】:
我正在使用 FusedLocationProviderClient 来跟踪位置,我想通过使用 getAccuracy() 方法获得最佳位置。我在一些设备上检查了这个方法,它返回 1500,有时返回 1700,而它必须小于几米(小于 12)。为什么会发生这种情况,我该怎么办? 提前致谢。
我的代码:
mLocationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
super.onLocationResult(locationResult);
Location location = locationResult.getLastLocation();
float acc = location.getAccuracy();
if (location != null && location.getAccuracy() < 10){
if(preLocation == null){
preLocation = location;
locationChanged(location);
sendLocation(location.getLatitude(), location.getLongitude());
}else if (preLocation.getLatitude() != location.getLatitude() && preLocation.getLongitude() != location.getLongitude()) {
// Logic to handle location object
locationChanged(location);
preLocation = location;
}
}
}
};
【问题讨论】:
-
GPS 可能并不总是可用,并且其他定位方法通常不是那么准确。 GPS 在室内无法工作,并且可能需要一段时间才能获得卫星定位,尤其是在设备没有 SIM 卡且辅助 GPS 不可用的情况下。
标签: android location fusedlocationproviderapi