LocationClient vs LocationManager

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

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

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

Solutions Collecting From Web of "LocationClient vs LocationManager"

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

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

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

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

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

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

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

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

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

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

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

EDIT 2:

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

https://github.com/rahulsh12/LocationManagerWrapper

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

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

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

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

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

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

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

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

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

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

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

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

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