2011-01-04 26 views
21

Uygulamamda Ağ Sağlayıcısı'nı kullanan bir konumlistener uygulamıştım.GPS ve Ağ Sağlayıcısı'nı aynı anda kullanın Android

Her şey gayet iyi çalışıyor çünkü hızlı bir şekilde bir yer bulmak istiyorum ve GPS Sağlayıcısı ile yaşları alır.

Ancak, konumumun doğru olması gereken (max 5-10meters) bir konumuma geldim.

GPS sağlayıcısını Ağ Sağlayıcısı ile aynı anda kullanıp kullanamayacağımı ve sonradan en iyi sonucu alıp alamayacağımı merak ediyorum. Ayrıca GPS sağlayıcısı bana GPS Konumunu sağladığında bana haber vermek de mümkün mü?

Yani temelde:

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

aynı geçersiz kılınmış onLocationChanged ile bu işi() Will?

GPS'in bir Konum kazanıp kazanmadığını nasıl görebilirim?

sayesinde

cevap

27

Kesinlikle birden sağlayıcıları için geçerli dinleyici kullanabilirsiniz. locationmanager.getProviders'un Criteria nesnesiyle kullanılması daha doğru olabilir, daha sonra doğrulukla sıralama yapabilir ya da hepsini dinleyebilirsiniz. Yine de pratik bir fark değil.

onLocationChanged geri arama, nereden geldiğini belirlemek için kullanabileceğiniz bir getProvider() yöntemine sahip bir Konum nesnesi verir. Ayrıca bir getAccuracy() yöntemine sahiptir, bu nedenle son düzeltmelerinizi doğrulukla da sıralayabilirsiniz.

+0

Cevabınız için tnx! – Galip

2

İdeal olarak, pil kullanımıyla ilgili endişeleriniz yoksa, her iki sağlayıcıyı da kullanmak kesinlikle mükemmeldir. Daren'in açıkladığı gibi, getProvider() ve getAccuracy() kullanarak koordinatları filtreleyebilirsiniz.

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

+0

Bunu daren cevabının bir yorumu olarak eklemek daha net olurdu – etienne

+2

Bu gerçekten Daren cevabına eklenen bir yorum olmalıydı. –