1

Я хочу, чтобы фиксированное фиксированное местоположение фиксировалось каждые определенные минуты & исправленное местоположение в определенные минуты, и если пользователь переместился более чем на определенные метры. Я тестировал логику с последующим ходом кода (пробовал ее с большими параметрами, а во время вождения), но на самом деле это не возвращает мне периодические исправления местоположения. Он вернет исправление местоположения сразу же, когда запрос начнется, а затем вернет 1 исправление местоположения через несколько минут, но затем в течение часа он не вернет исправление местоположения.Android Fused Location не выдаст периодических обновлений

LocationRequest locationRequest = LocationRequest.create(); 
int priority = PRIORITY_BALANCED_POWER_ACCURACY; 
locationRequest.setPriority(priority); 
locationRequest.setInterval(localInterval); //set to 6 minutes 
locationRequest.setFastestInterval(localFastestInterval); //set to 3 minutes 
locationRequest.setSmallestDisplacement(smallestDisplacement); //set to 10 meters 
locationRequest.setNumUpdates(numUpdates); //set to Int.MAX_VALUE 
locationRequest.setExpirationDuration(expirationDuration); // set to Long.MAX_VALUE 
LocationServices.FusedLocationApi.requestLocationUpdates(locationClient, locationRequest, pendingIntent); 

Если я устанавливаю смещение на 0, то получаю периодические обновления местоположения. Любая идея, что происходит?

+0

Что такое значение numUpdates. – SachinS

+0

@SachinS посмотреть комментарий на той же строке – 2cupsOfTech

ответ

1

После долгого исчерпывающего тестирования & эксперимент Я обнаружил, что если вы не позвоните setFastestInterval, вы получите периодические обновления точно в соответствии с интервалом, установленным setInterval.

Однако, поскольку другие приложения могут привести к исправлениям местоположения, которые будут доставлены очень быстро, так что просто поставьте галочку для игнорирования исправлений местоположения, поставленных быстрее определенного порогового значения времени.

Согласно документации: Если setFastestInterval(long) устанавливается медленнее, чем setInterval(long), то ваш эффективный быстрый интервал setInterval (длинный) но этого не происходит: например, настройка следующие параметры должны дать вам жесткий Устранить местоположение и каждую 1 минуту, но это не делает (на Зефир по-крайней мере):

interval = 1 min 
fastestInterval = 20 min 
displacement = 0 

Если кто-то может опровергнуть мои выводы с куском кода, который был бы большим.