В Android есть 3 провайдера местоположения.
Это:
gps -> (GPS, AGPS): Название провайдера местоположения GPS.Этот провайдер определяет местоположение, используя спутники.В зависимости от условий этому провайдеру может потребоваться некоторое время, чтобы вернуть исправление местоположения.Требуется разрешение android.permission.ACCESS_FINE_LOCATION.
сеть -> (AGPS, CellID, WiFi MACID): Имя поставщика сетевого расположения.Этот провайдер определяет местоположение на основе доступности вышки сотовой связи и точек доступа WiFi.Результаты извлекаются с помощью поиска в сети.Требуются либо разрешения android.permission.ACCESS_COARSE_LOCATION, либо android.permission.ACCESS_FINE_LOCATION.
пассивный -> (CellID, WiFi MACID): Специальный поставщик местоположения для получения местоположений без фактической инициацииместоположение исправить.Этот поставщик может использоваться для пассивного получения обновлений местоположения, когда другие приложения или службы запрашивают их, фактически не запрашивая местоположения самостоятельно.Этот провайдер возвращает местоположения, созданные другими провайдерами.Требуется разрешение android.permission.ACCESS_FINE_LOCATION, хотя, если GPS не включен, этот поставщик может возвращать только грубые исправления.Это то, что Android называет этими провайдерами определения местоположения, однако базовые технологии для обеспечения работы этого материала привязаны к конкретному набору аппаратных и телекоммуникационных возможностей (услуга сети).
Лучший способ - этосначала используйте «сетевой» или «пассивный» провайдер, а затем откройте «gps» и, в зависимости от задачи, переключайтесь между провайдерами.Это охватывает все случаи и обеспечивает наименьший общий знаменатель (в худшем случае) и отличный сервис (в лучшем случае).
![enter image description here](https://i.stack.imgur.com/BFtnE.png)
СтатьяСсылка: Поставщики местоположения Android - GPS, сеть, пассив По Назмулу Идрису
Код ссылки: https://stackoverflow.com/a/3145655/28557
----------------------- Обновление -----------------------
Теперь Android есть Поставщик объединенных локаций
Поставщик объединенных локаций разумно управляет базовой технологией определения местоположения и предоставляет вам наилучшее местоположение в соответствии с вашими потребностями.Это упрощает способы получения приложениями текущего местоположения пользователя с улучшенной точностью и меньшим энергопотреблением
Поставщик объединенных местоположений предоставляет три способа получения местоположения
- Последнее местоположение: Используйте, если вы хотите узнать текущее местоположение один раз.
- Запрос местоположения с помощью прослушивателя: Используйте, когда приложение находится на экране / во внешнем интерфейсе и требует продолжения расположения.
- Запрос местоположения с использованием ожидающего намерения: Используется, когда приложение в фоновом режиме и требует продолжения местоположения.
Ссылки:
Официальный сайт: http://developer.android.com/google/play-services/location.html
Пример провайдера слияния: GIT: https://github.com/kpbird/fused-location-provider-example
http://blog.lemberg.co.uk/fused-location-provider
--------------------------------------------------------