Ответ 1
В 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" и, в зависимости от задачи, переключаться между провайдерами. Это охватывает все случаи и обеспечивает наименьший общий знаменатель (в худшем случае) и отличный сервис (в лучшем случае).
Ссылка на статью: Android Location Providers - gps, сеть, пассив По Назмул Идрис
Ссылка на код: fooobar.com/questions/12461/...
-----------------------Обновить-----------------------
Теперь у 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
-------------------------------------------------- ------