Провайдеров определения местоположения Android - GPS или сети провайдера?


в моем приложении я хотел бы определить текущее местоположение пользователя. Однако у меня есть несколько вопросов по этому поводу:

  1. существуют различные поставщики местоположения, какой из них является наиболее точным? Элемент GPS-провайдеров или Сеть Провайдера?

  2. в какой степени эти доступные провайдеры отличаются? Как они работают?

  3. не могли бы вы предоставить мне некоторые фрагменты кода или учебники о том, как начать работу с реализацией функций GPS в моем приложении?

3 105

3 ответа:

есть 3 провайдера местоположения в Android.

они:

gps - > (GPS, AGPS): имя поставщика местоположения GPS. Этот поставщик определяет местоположение с помощью спутников. В зависимости от условия, этот поставщик может занять некоторое время, чтобы вернуть исправление местоположения. Требуется разрешение android.разрешение.Функция.

сеть - > (AGPS, CellID, WiFi MACID): имя сеть поставщик местоположения. Этот поставщик определяет местоположение на основе наличие вышки сотовой связи и точек доступа WiFi. Результаты извлекается с помощью сетевого поиска. Требует любого из разрешения android.разрешение.ACCESS_COARSE_LOCATION или андроид.разрешение.Функция.

пассивные –> (CellID, беспроводной доступ в интернет Меджида): специальный поставщик местоположения для получение местоположений без фактического инициирования исправления местоположения. Этот провайдер может быть используется для пассивного получения обновлений местоположения, когда другие приложения или службы запрашивают их без фактического запроса сами локации. Этот поставщик возвращает местоположения, созданные другие оференты. Требуется разрешение андроид.разрешение.ACCESS_FINE_LOCATION, хотя если GPS нет включено этот поставщик может возвращать только грубые исправления. Это Android вызывает этих поставщиков местоположения, однако, основной технологии, чтобы заставить этот материал работать, сопоставляются специфический набор аппаратные и телекоммуникационные возможности (сетевое обслуживание).

лучший способ-сначала использовать "сетевой" или "пассивный" провайдер, а затем откат на "gps", и в зависимости от задачи, переключение между услуги поставщиков. Это покрывает все случаи, и обеспечивает самое низкое общее знаменатель сервис (в худшем случае) и отличный сервис (в лучшем случай.)

enter image description here

Ссылка На Статью: Android Провайдеры местоположения-gps, сеть, пассивный по Fernando Cejas

ссылка на код:https://stackoverflow.com/a/3145655/28557

-----------------------обновление-----------------------

теперь у Android плавленый расположение провайдеров

сплавленный провайдер положения толковейше управляет основной технологией положения и дает вам самое лучшее положение согласно вашим потребностям. Это упрощает способы для приложений, чтобы получить текущее местоположение пользователя с улучшенной точностью и более низким энергопотреблением

Fused location provider предоставляет три способа извлечения местоположения

  1. Последнем Месте: используйте, когда вы хотите знать текущее местоположение один раз.
  2. запрос местоположения с помощью приемника: используйте, когда приложение находится на экране / интерфейсе и требует продолжения местоположения.
  3. запрос местоположения с помощью отложенного Намерение: используйте, когда приложение в фоновом режиме и требует продолжения местоположения.

ссылки :

официальный сайт : http://developer.android.com/google/play-services/location.html

пример плавленого определитель местоположения : МЕРЗАВЕЦ : https://github.com/kpbird/fused-location-provider-example

http://blog.lemberg.co.uk/fused-location-provider

--------------------------------------------------------

GPS обычно более точен, чем сеть, но иногда GPS недоступен, поэтому вам может потребоваться переключиться между ними.

хорошим началом может быть просмотр сайта Android dev. У них был раздел, посвященный определению местоположения пользователя, и в нем есть все образцы кода, которые вам нужны.

http://developer.android.com/guide/topics/location/obtaining-user-location.html

есть некоторые отличные ответы, упомянутые здесь. Другой подход, который вы могли бы принять, - это использовать некоторые бесплатные SDK, доступные в интернете, такие как Atooma, tranql и Neura, которые могут быть интегрированы с вашим приложением для Android (для интеграции требуется менее 20 минут). Наряду с давая вам точное местоположение вашего пользователя, он также может дать вам хорошее представление о деятельности пользователя. Кроме того, некоторые из них потребляют менее 1% вашего аккумулятора