Одновременно используйте GPS и Network Provider в 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 местоположение?

Благодаря,

Solutions Collecting From Web of "Одновременно используйте GPS и Network Provider в Android"

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

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

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

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