Подтвердить что ты не робот

LocationClient vs LocationManager

В чем разница между LocationClient и LocationManager.

Каковы плюсы и минусы между ними (например, батарея, точность)?

Что лучше использовать?

4b9b3361

Ответ 1

Location Manager был представлен в Android SDK и может использоваться как функция андроида.

Location Client - это часть SDK Google Play и представлена ​​в недавнем Google IO 2013.

Можно понять, что, поскольку Location Client является самым последним, более эффективен в получении местоположения с минимальной энергией (утечка батареи) с большей точностью.

UPDATE: LocationClient устарела. Вы должны использовать GoogleApiClient. Пример этого можно найти здесь.

Команда Google Play Services очистила свой код и переместила функцию LocationClient в GoogleApiClient.

Учебное пособие для него доступно в http://developer.android.com/training/location/retrieve-current.html

По следующей ссылке вы можете найти сообщение об этом предмете http://www.youtube.com/watch?v=Bte_GHuxUGc

Ответ 2

Я разрабатываю приложение на основе местоположения в android, и я серьезно НЕ рекомендую использовать LOCATION CLIENT в любом случае. Причины:

  • Поведение местоположения очень ненормальное и не работает, как вы ожидаете. т.е. обновления местоположения застревают при переключении сетей. (Он продолжает давать вам старое местоположение)

  • Клиент местоположения не будет работать с модифицированными версиями Android для Android, поскольку для этого требуются сервисы Google Play.

По моему опыту, клиент местоположения может быть хорошим на батарее телефона, но это будет не так, если вы будете своевременно получать точную информацию о местоположении.

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

P.S.: Нет смысла экономить батарею, если вы даже не получаете свое текущее местоположение в приложении на основе местоположения.

EDIT: Если вы знаете реализацию LocationManager и LocationClient (оба доступны в документации), вы можете создать свою собственную оболочку, подобную LocationClient (с обратными вызовами и т.д.), Которая будет работать с LocationManager, но с настраиваемыми настраиваемыми свойствами.

ИЗМЕНИТЬ 2:

Здесь вы найдете здесь класс LocationManager Wrapper, который обеспечивает своевременное обновление местоположения:

https://github.com/rahulsh12/LocationManagerWrapper

Ответ 3

Я работал над приложением отслеживания, и мой опыт в том, что LocationManager лучше, чем LocationClient. LocationClient не предоставляет никакого способа указать, что вы хотите получать обновления местоположения только с GPS. Все это позволяет указать "высокую точность". Это работает для большей части, но время от времени вы получаете обновление местоположения, которое составляет сотни метров, но с заданной точностью в несколько метров. Невозможно узнать, что у вас есть непригодный образец. С помощью LocationManager, если вы укажете GPS_PROVIDER, вы можете быть уверены, что никогда не получите дико неточные образцы. Хорошо работаем для нас.

Ответ 4

От кого-то, кто перешел на Google Play Services некоторое время назад, я могу дать вам некоторые впечатления:

У меня есть приложение, около 2,5 лет, которое широко использует службы определения местоположения. С самого начала, конечно, мы использовали LocationManager с тех пор, что было доступно на платформе Android.

У нас был довольно плохой опыт работы с Location Services на Android по сравнению с IOS. Он был неудачным, ненадежным и предоставлял менее точные места, чем наше приложение для IOS, плюс, что он разрядил больше батареи. Это было перетаскивание.

Поэтому, когда Google обнародовал новый API в июне этого лета, мы прыгнули на него. Это лучше. Несколько вещей:

  • Это быстрее и надежнее.

  • Он менее глючен. Например, в старом API иногда можно получить "старое" исправление с новой меткой времени. Это никогда не бывает. Там больше, но это будет еще более длинный пост.

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

Итак, когда дело доходит до вывода местоположения и работы, все лучше. Но есть некоторые недостатки:

  • У вас должно быть установлено приложение Google Play Services, что означает, что он не будет работать на каких-либо моделях телефонов, не одобренных Google, и в некоторых случаях вам нужно будет сообщить пользователям, что им нужно его установить.

  • Сам API является более сложным IMO, частично из-за пункта 1. В дополнение к "регулярным" обратным вызовам, т.е. ожиданиям исправлений местоположений и т.д. Теперь у вас есть процесс, который принимает участие, прежде чем вы сможете начать, где вы должны проверить, что доступны сервисы, и "подключить" locationclient. Это дополнительный код и немного сложнее понять. Более ошибочные условия, которые необходимо учитывать в коде (если вас это беспокоит...)

  • Для самих сервисов Google требуется как минимум 2,2, поэтому для более старых устройств он не будет работать. Нам пришлось сказать некоторым клиентам, которых они должны были обновить...

Надеюсь, что это поможет.