MyTetra Share
Делитесь знаниями!
Разница между requestLocationUpdate и Fused Location Provider
11.01.2019
12:47
Текстовые метки: андроид, android, сервис, местоположение, location, провайдер, provider
Раздел: Компьютер - Программирование - Язык C++ - Библиотека Qt - Картография в Qt и QML

Для определения местоположения вы можете использовать как стандартный requestLocationUpdate, так и Fused Location Provider, который является частью api Google play services. Плюсами решения на основе Fused Location Provider является то, что вам не надо самому подыскивать наиболее точный источник координат, он сделает это за вас. Если запускать его с критериями для определения наиболее точного местоположения, то он будет работать по следующему принципу:


  1. Если GPS доступен и включен, то выбирается GPS_PROVIDER в качестве источника.
  2. Если GPS недоступен то выбирается NETWORK_PROVIDER. В данном случаи координаты определяются при помощи вышек сотовой связи и WIFI.
  3. Если не того не другого нет то используется PASSIVE_PROVIDER. Тут система пытается использовать любой способ получить хоть какое-то местоположение в том числе и при использовании акселерометра. Этот провайдер наименее точный.


Так вот Fused Location Provider включает в себя все три и переключается между ними в зависимости от ситуации для получения наиболее точного место положения, так же при его использовании заряд батареи жрется медленнее. Его главными минусами является то, что для его работы необходим Google play services и то, что вы не сможете отследить какой именно тип провайдера используется в данный момент.

Что касается стандартного LocationManager, то вам придется самому определять какой провайдер использовать и переключаться между ними в ручную. В общем все делать ручками. Плюсом является то, что вы полностью контролируете весь процесс.

От себя добавлю что я юзал Fused Location Provider и работает он просто замечательно, главное чтобы его версия была 7 и выше, на 6 давал сильный разброс по координатам.


Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования