FusedLocationApi性能问题:精度似乎限制在10.0米

时间:2018-03-01 07:34:13

标签: android android-gps android-fusedlocation

我遇到一个奇怪的问题,FusedLocationProviderAPI没有给我一个更好的准确度数,然后10.0米。 它开始像正常一样给我很多,例如,56米...... 24 ...... 13 ......然后保持在10.0。看起来似乎没有那么好。

尝试电话 Sony Xperia Z2 & 华为荣誉8

location.getAccuracy() //Seems capped at 10.0 meters

奇怪的是,我收到的精确度低至3.0米左右,外面天气很好,我无法更改手机GPS选项/也没有任何与GPS服务类相关的选项。

我的应用依赖于能够获得最高精度数。这可能是什么问题?电话本身?请求的设置?上限数的可能原因是什么?

编辑:在尝试使用Huwaei时遇到同样的问题。所以代码似乎有问题?就像x量的位置请求精度从系统上限到10.0?

我的GPS服务相关的事情:

清单

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

服务

private long UPDATE_INTERVAL = 2 * 1000;  /* 10 secs */
private long FASTEST_INTERVAL = 2000; /* 2 sec */
static final int MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION = 1;

private void requestLocation() {
    locationRequest = new LocationRequest();
    locationRequest.setInterval(UPDATE_INTERVAL);
    locationRequest.setFastestInterval(FASTEST_INTERVAL);
    locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
    gac = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(LocationServices.API)
            .build();
}

@Override
public void onLocationChanged(Location location) {

    locationData = location; //1. Set local field to incoming location
    gpsAccuracy = location.getAccuracy(); //2. Est. horizontal accuracy of location, radial, in meters.
}

1 个答案:

答案 0 :(得分:0)

看起来10 m是使用FusedLocationServicesApi可获得的最佳近似精度,其中HIGH_ACCURACY为优先级。但是,我相信通过使用LocationManager可能可以获得更好的准确性。查看这篇文章:  http://www.tothenew.com/blog/googles-fused-location-api-for-android/