Проблема с производительностью FusedLocationApi: точность ограничена 10,0 метрами

Я столкнулся со странной проблемой, когда 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. Значит, проблема с кодом? Например, после 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.
}

person thelastchief    schedule 01.03.2018    source источник
comment
У меня возникла та же проблема, несмотря на то, что я использовал Cordova для получения точности. Внезапно, теперь он ограничен 10 метрами. Вы узнали, почему?   -  person Mirko    schedule 18.03.2018
comment
@Mirko Привет, Мирко, нет, к сожалению, я нигде не нашел ответов ... По крайней мере, теперь есть еще один человек, который столкнулся с той же проблемой, что и я. Я искренне думаю, что есть еще люди, испытывающие то же самое, что и мы... но они просто не вызывают location.getAccuracy(). Можем ли мы спросить разработчиков Google об этом? Или что мы можем сделать?   -  person thelastchief    schedule 18.03.2018
comment
Я также отправляю вопрос, свяжу это. Я думаю, это новинка, в прошлом году у нашего приложения не было проблем, так что это должно быть где-то недавнее изменение.   -  person Mirko    schedule 18.03.2018
comment
@Mirko Вам может показаться это интересным: после сброса программного обеспечения на телефоне и переустановки приложения я снова получил числа точности ниже 10 ... изначально. Но опять же, после x количества обновлений местоположения число точности ограничено 10,0 м. Я должен сказать, что мой GPS предназначен для работы в качестве переднего плана до 3,5 часов за раз. Единственная корреляция, которую я видел, — это время и количество запросов в качестве триггерного фактора.   -  person thelastchief    schedule 18.03.2018
comment
Я могу получить 3/4 метра с помощью этого плагина версии 2.x. Попробуйте взглянуть на код Java github.com/mauron85. /cordova-plugin-background-geolocation/tree/   -  person Mirko    schedule 18.03.2018
comment
Я связал ваш вопрос здесь stackoverflow.com/questions/49348489/   -  person Mirko    schedule 18.03.2018
comment
@Mirko Спасибо за внимание и помощь Мирко   -  person thelastchief    schedule 18.03.2018
comment
Не могли бы вы попробовать сделать еще один тест? Когда вы перезагружаете устройство, не обновляйте Сервисы Google Play (используйте стандартную версию) и попытайтесь получить некоторые данные о местоположении, чтобы увидеть, не станете ли вы ниже 10. Затем обновите Сервисы Google Play и повторите попытку.   -  person Mirko    schedule 19.03.2018
comment
@Mirko Да, я попробую это и попробую то, что сказал другой парень в вашем вопросе. Завтра отпишусь о результатах :)   -  person thelastchief    schedule 20.03.2018
comment
Давайте продолжим обсуждение в чате.   -  person Mirko    schedule 20.03.2018
comment
Появляются дополнительные вопросы, см. распространение с февраля 15%23"> stackoverflow.com/questions/49656301/   -  person Mirko    schedule 09.04.2018
comment
У меня была такая же проблема, о которой сообщалось в stackoverflow.com/questions/49289206/. Я пробовал несколько разных версий Play Services. Демонстрационное приложение, на которое я ссылаюсь, говорит о том, что GPS может обеспечить лучшую точность только на одном и том же устройстве в один и тот же момент.   -  person Hélène Martin    schedule 09.04.2018
comment
У меня такая же проблема, и я создал проблему с Google, issuetracker.google.com/u/ 1/issues/79189573 и воспроизводимый тестовый пример в их примерах, github.com/googlesamples/android-play-location/issues/151. Надеюсь, мы скоро здесь что-нибудь придумаем.   -  person jdONeill    schedule 03.05.2018
comment
Я ответил на аналогичный вопрос здесь ограничено 10 метрами"> stackoverflow.com/questions/49348489/   -  person Mirko    schedule 05.10.2018


Ответы (1)


Похоже, что 10 м — это наилучшая приблизительная точность, которую вы можете получить с помощью FusedLocationServicesApi, с HIGH_ACCURACY в качестве приоритета. Однако я считаю, что с помощью LocationManager можно было бы повысить точность. Прочтите эту статью: http://www.tothenew.com/blog/googles-fused-location-api-for-android/

person Adwaya Sau    schedule 29.06.2018
comment
Проблема возникла внутри Google. После обновления Play Services теперь можно снова повысить точность. - person thelastchief; 25.01.2019