2014-12-06 3 views
0

Я пытаюсь получить точное местоположение для своего приложения для аварийного оповещения. Я уже использую locationManager для получения местоположения, но выбор места с этой методикой занимает около 30 секунд. Я ищу более быстрый & точный способ.GoogleApiClient Vs LocationClient, чтобы получить точное местоположение в Android

Основная цель здесь - получить более быстрое/точное местоположение (внутри или снаружи).

Я решил использовать API GooglePlayservices для этой цели. Я понял, что есть два варианта LocationClient и GoogleApiClient?

Я не уверен, что лучше всего здесь? Может кто-нибудь сказать мне, в чем разница с обоими, или есть лучший вариант?

Дайте мне знать!

Спасибо!

ответ

2

Адрес клиента GoogleApiClient хорош, если вам нужен сплавленный с высокой точностью.

С fused Я имею в виду место, рассчитанное с использованием Wi-Fi, GPS и т. Д.

С клиентом местоположения вместо этого вы должны выбрать поставщика. Вы даже можете использовать критерии, но в этом случае я думаю, что информация не «сплавлена». В вашем случае я считаю, что лучшим выбором является использование клиента местоположения GoogleApiClient, и вы можете использовать getLastLocation().

1

Я бы рекомендовал использовать GooglePlayServices не только по причинам @ gresywolf82 hasstated, но также и потому, что это самый стабильный способ получения данных о местоположении. По моему опыту я обнаружил, что некоторые устройства Android могут иметь проблемы с получением местоположения из locationManager SDK, это связано с вероятными ошибками в SDK, вы можете проверить проблему в Android Open Source Project - Issue Tracker по этой проблеме с помощью locationManager here

Я сам нашел предыдущую проблему при использовании locationManager и не имел абсолютно никаких проблем при переключении на API сервисов Google Play.

В заключение не только для большей точности, но и для лучшей стабильности в различных устройствах, я определенно рекомендую использовать API сервисов Google Play.

1

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

Насколько я вижу, GoogleApiClient является совокупностью LocationClient и других GoogleApis (кто-то правильно, если я ошибаюсь). Если вы хотите настроить таргетинг на LocationClient, вы можете сделать это без каких-либо действий.

С другой стороны, похоже, что GoogleApiClient требует жесткой связи с жизненным циклом активности, необходимо отключить onStop и подключить onStart. Проблема, с которой я сталкиваюсь с такими асинхронными вызовами, заключается в том, чтобы убедиться, что API готов и готов к моменту, когда он мне понадобится. Поэтому я обычно ухожу с LocationClient и поддерживаю его за пределами жизненных циклов Activity.

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

Смежные вопросы