2010-01-13 27 views
10

benim uygulamanın çalıştırılması sırasında mevcut konumunu almak için Android: getLastKnownLoad out-of-date - konum yenilemeyi zorlamak için nasıl?

myLocation = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 

kullanıyorum.

Android belgelerinin belirttiği gibi, bu konum, GPS son kez kullanıldığında konum döndüğü için, bu konum "güncel değil" olabilir.

etkin olarak nasıl geçerli konumdan GPS'yi talep edebilir? LocationListener'u kullanmayı düşündüm, ancak bu bir overkill biraz olabilir, çünkü ben sadece bir kez konumuma (app başında) ihtiyacım var.

Herhangi bir fikrin var mı?

cevap

10

İlk sezginiz doğru - güncelleştirmeler istemek için LocationListener kullanmanız gerekir. Yalnızca bir konum gerektirdiğine göre, ilk değer döndükten sonra LocationListener kaydını silebilirsiniz. Yine de uygulamada, biraz daha uzun süre dinlemek akıllıca olacaktır. Konum Tabanlı Servisler (özellikle GPS), ilk olarak düzeltmelerini aldıklarında biraz 'zıplamak' eğilimindedir. En iyi seçeneğiniz, belirli bir süre boyunca veya belirli sayıda bir doğruluk elde edilinceye kadar belirli bir süre dinlemektir (Konum Dinleyici geri dönen konumun doğruluğunu döndürecektir).

+0

Muchas gracias Reto :-) – znq

+0

Paten zaten GPS'i etkinleştirdiğimi ve ardından uygulamamı başlattığımı farz edelim. Tek bir yerde kalırsam onCocationChanged() çağrılmaz. Bu durumda getLastKnownLocation() öğesinin dönüş değerinin güncel olmadığından nasıl emin olabilirim? – flypen

+0

Zamana göre güncellemeleri belirtebilir, requestLocationUpdates dosyasına bakabilirsiniz. –

İlgili konular