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

Одновременное использование GPS и сетевого провайдера в Android

Я применил функцию locationlistener в своем приложении, которая использует Network Provider.

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

Но я пришел к моменту своего приложения, где местоположение должно быть точным (макс. 5-10 метров).

Мне было интересно, можно ли одновременно использовать провайдера GPS вместе с сетевым провайдером, а затем получить лучший результат? И также можно сообщить мне, когда поставщик GPS предоставил мне GPS-местоположение?

Итак, в основном:

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);

Будет ли это работать с тем же переопределенным onLocationChanged()?

И как я могу узнать, получил ли GPS местоположение?

Спасибо,

4b9b3361

Ответ 1

Вы можете использовать один и тот же прослушиватель для нескольких поставщиков. Лучше использовать locationmanager.getProviders с объектом Criteria, затем сортировать по точности или просто слушать все из них. Не так много практических различий.

Обратный вызов onLocationChanged предоставляет объект Location, который имеет метод getProvider(), который вы можете использовать, чтобы определить, откуда он пришел. Он также имеет метод getAccuracy(), поэтому вы можете также сортировать последние исправления с точностью.

Ответ 2

В идеале, если вы не беспокоитесь об использовании аккумулятора, то это прекрасно подходит для использования обоих поставщиков. Как объяснил Дарен, вы можете фильтровать координаты с помощью getProvider() и getAccuracy().

http://blog.shinetech.com/2011/10/14/a-good-look-at-android-location-data/