Расположение провайдеров в Android? - PullRequest
1 голос
/ 10 августа 2010

Мое приложение требует текущего местоположения пользователя. Для этого я реализовал код и смог получить текущее местоположение. Код сначала пытается найти лучшего поставщика, а затем получает информацию о местоположении. Проблема в том, что текущее местоположение возвращается из NETWORK_PROVIDER, если GPS_PROVIDER отключен. Если включены и NETWORK_PROVIDER, и GPS_PROVIDER, то лучшим провайдером будет GPS_PROVIDER, и для получения текущего местоположения потребуется слишком много времени.

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

Пожалуйста, дайте мне знать, каков правильный подход.

Привет

Сунил

Ответы [ 2 ]

1 голос
/ 10 августа 2010

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

Но если вы действительно хотите максимально точное местоположение, почему бы не послушать обоих провайдеров? Вы можете использовать метод getLastKnownLocation() для начального местоположения. Тогда вы можете использовать местоположение NETWORK_PROVIDER. Затем, как только вы получите исправление от GPS_PROVIDER, вы можете проигнорировать или удалить прослушиватель сети.

0 голосов
/ 10 августа 2010

GPS дает лучшую точность, чем поставщик сети.

Провайдер сети работает с использованием триангуляции сотовых вышек и Wi-Fi.

Итак, если вам нужно немедленно, начните с «последнего известного местоположения», затем переключитесь на сеть, как только вы получите исправление от gps, начните его использовать.

С уважением, Вини

...