2012-05-25 43 views
1

位置我用network providerAndroid application得到位置。有時候,我發現即使到達一個新的地方後,這個位置也不會改變。與此同時,我發現地圖在Google Map中發生了變化。所以我退出並重新啓動我的應用程序,並且位置也沒有改變。但經過很長一段時間,或者我重新啓動手機,我可以看到新的位置。什麼時候網絡供應商更新的Android

任何一個人知道是什麼原因呢?我已經使用getLastKnownLocation()在我的應用程序中獲取最新的位置。

更新:

當這個問題發生了,我發現小區id和LAC改變而位置沒有改變。所以這很奇怪。我認爲谷歌地圖可能會使用cellid & LAC直接獲取位置,因此它可以獲取正確的位置。

更多更新:

當這個問題發生了,我用的是小區id和LAC獲得通過谷歌從服務器的HTTP POST請求中的位置。這個位置是正確的。

BTW,我發現我的問題是這樣的問題:Android network location takes hours to update location

+1

谷歌地圖使用GPS以及NetworkProvider當你把設備到新的位置,是否能上網嗎?您需要上網(無論是連接到WLAN或移動數據連接)使用NetworkProvider得到一個位置。 –

+0

是的,我有一個互聯網連接。 – flypen

回答

0

我不相信getLastKnownLocation()。根據我的經驗,這是不可靠的。

你會更好使用請求位置LocationManager.requestLocationUpdates()回調。如果您只需要位置,則可以使用LocationManager.removeUpdates()之後取消註冊回調。如果應用程序需要時的位置,然後改變你可以回調的合理搭配鉛丹,時間和/或最小距離參數登記通知(無論基於何種應用程序要求。

+0

我用這個方法,但有時我仍然沒有及時獲得位置,我可能會等待30分鐘以上才能得到更新後的結果,同時Google Map可以正常工作 – flypen

+0

您使用的是什麼設備?您傳遞給'requestLocationUpdates()'的參數?? –

+0

HTC G 7。 locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000,10f,mylistener); – flypen