В Android есть 3 поставщика геолокации.
Они есть:
gps -> (GPS, AGPS): имя поставщика местоположения GPS. Этот провайдер определяет местоположение по спутникам. В зависимости от условий этому поставщику может потребоваться некоторое время, чтобы вернуть исправление местоположения. Требуется разрешение android.permission.ACCESS_FINE_LOCATION.
сеть -> (AGPS, CellID, WiFi MACID): имя поставщика сетевых местоположений. Этот провайдер определяет местоположение в зависимости от наличия вышек сотовой связи и точек доступа Wi-Fi. Результаты получаются посредством поиска в сети. Требуется одно из разрешений android.permission.ACCESS_COARSE_LOCATION или android.permission.ACCESS_FINE_LOCATION.
пассивный -> (CellID, WiFi MACID): специальный провайдер местоположения для получения местоположения без фактического запуска исправления местоположения. Этот поставщик может использоваться для пассивного получения обновлений местоположения, когда их запрашивают другие приложения или службы, без фактического запроса местоположения самостоятельно. Этот поставщик будет возвращать местоположения, созданные другими поставщиками. Требуется разрешение android.permission.ACCESS_FINE_LOCATION, хотя, если GPS не включен, этот провайдер может возвращать только грубые исправления. Это то, что Android называет этими поставщиками местоположения, однако базовые технологии, обеспечивающие работу этого материала, сопоставляются с конкретным набором аппаратных средств и возможностей, предоставляемых телекоммуникационной компанией (сетевая услуга).
Лучше всего использовать сначала «сетевого» или «пассивного» провайдера, а затем откатиться на «gps» и, в зависимости от задачи, переключаться между провайдерами. Это покрывает все случаи и обеспечивает обслуживание с наименьшим общим знаменателем (в худшем случае) и отличное обслуживание (в лучшем случае).
Ссылка на статью: Поставщики геолокации Android - gps, сеть, пассивные Авторы Назмул Идрис
Ссылка на код: https://stackoverflow.com/a/3145655/28557
----------------------- Обновление -----------------------
Теперь у Android есть Fused Location Provider.
Fused Location Provider интеллектуально управляет базовой технологией определения местоположения и предоставляет вам наилучшее местоположение в соответствии с вашими потребностями. Это упрощает приложениям способы определения текущего местоположения пользователя с повышенной точностью и меньшим энергопотреблением.
Поставщик объединенного местоположения предоставляет три способа получения местоположения
- Последнее местоположение: используйте, если вы хотите узнать свое текущее местоположение один раз.
- Запрос местоположения с помощью прослушивателя: используется, когда приложение отображается на экране или во внешнем интерфейсе и требует постоянного определения местоположения.
- Запрос местоположения с использованием ожидающего намерения: используется, когда приложение работает в фоновом режиме и требует продолжения определения местоположения.
Ссылки:
Официальный сайт: 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
----------------------------------------------- ---------
person
Vinayak Bevinakatti
schedule
21.07.2011