android - FusedLocationProviderClient 精度在某些设备上返回 1500
问题描述
我正在使用 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;
}
}
}
};
解决方案
尝试像这样将 locationRequest 优先级设置为 High Accuracy
LocationRequest mLocationRequest = new LocationRequest();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED) {
//Location Permission already granted
mFusedLocationClient.requestLocationUpdates(mLocationRequest, mLocationCallback, Looper.myLooper());
}
} else {
mFusedLocationClient.requestLocationUpdates(mLocationRequest, mLocationCallback, Looper.myLooper());
}
}
LocationCallback mLocationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
for (Location location : locationResult.getLocations()) {
//Do what you want with the location here
}
}
};
推荐阅读
- javascript - Puppeteer 并通过多个用户循环流程
- reactjs - 在 React 功能组件中重构 this 的使用?
- java - Java Android 启动 Tor 进程端口 9150
- python - RegExp 删除行包含 NULL
- java - 应用程序部署在两个节点上时如何仅读取一次文件
- javascript - React.js this.props.user 在 componentDidMount 中始终为 null
- flutter - 跨页面的颤振计数器
- c# - SqlException:插入语句与外键约束冲突
- javascript - 如何将 PHP var 传递给外部 js 文件
- sql - 根据 BigQuery 中嵌套字段的不同值选择行