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

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

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

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

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

3 ответов


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

они:

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

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

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

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

enter image description here

Ссылка На Статью: Android Поставщики местоположения-gps, сеть, пассивный Фернандо 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% вашего аккумулятора