Неправильные обновления фона геолокации Flutter - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть следующая StreamSubscription, которая получает местоположение пользователя каждые 10 метров:

StreamSubscription < LocationResult > subscription = Geolocation.locationUpdates(
    accuracy: LocationAccuracy.best,
    displacementFilter: 10.0,
    inBackground: true,
  )
  .listen((result) {
    if (result.isSuccessful) {
      saveResult(result);
    } else {}
  });

Затем вызывается saveResult (результат) для сохранения результата в пожарном хранилище.Когда приложение находится на переднем плане, все работает как положено, но когда оно переходит в фоновый режим, оно иногда сохраняет результаты на несколько сотен метров, а затем прекращает их сохранение.Результаты по-прежнему буферизируются, хотя, когда приложение возвращается в фокус, saveResult (результат) выполняется многократно, и вы можете наблюдать, как результаты добавляются один за другим, быстро, в firestore.Есть ли способ иметь более последовательный способ обновления результатов с приложением в фоновом режиме?

1 Ответ

0 голосов
/ 01 августа 2019

Я также столкнулся с этой проблемой, и я разработал свой собственный плагин для фоновых обновлений местоположения, вот он, flutter_background_location .Все нормально с android, но я не уверен насчет iOS, поскольку у меня нет Mac.

...