Проблема была внутренней с Google. После обновления Play Services теперь можно снова получить более высокую точность.

ытываю странную проблему, когдаFusedLocationProviderAPI не дает мне лучшее значение точности, чем 10,0 метра. Это начинается как обычно, давая мне большое количество, например, 56 метров ... 24 ... 13 ... и затем остается на 10.0. Казалось бы, ограничен в предоставлении не лучше, чем это.

Попробовал по телефонуSony Xperia Z2 & Huawei Honor 8

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

Странно то, что я получал число Точности примерно до 3,0 метров при хорошей погоде на улице, и у меня нет воспоминаний об изменении параметров GPS телефона или каких-либо параметров, связанных с классом обслуживания GPS.

Мое приложение зависит от возможности получить максимально возможное число точности. В чем может быть проблема здесь? Сам телефон? Настройки запроса? Возможные причины ограниченного числа?

Редактировать: Испытал ту же проблему при попытке на Huwaei. Так что, похоже, проблема с кодом? Как, например, после того, как количество запросов на определение местоположения превысит 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)

Ваш ответ на вопрос