2010-11-22 28 views
2

得到最準確的位置,我已經使用這個代碼的Android:如何從GPS

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 
       500, 50, this); 

使用GPS獲得我的位置。根據我的理解,這段代碼每500毫秒更新一次GPS,直到精度約爲50毫秒。對?現在我怎麼知道它何時達到了這個精度?這樣我可以在短信中發送最準確的位置。

回答

4

500是通知的最小時間間隔,僅爲提示。

如可以看到在javadocs

接收通知的最小時間間隔,以毫秒爲單位。此字段僅用作節省電量的提示,位置更新之間的實際時間可能大於或小於此值。

因此可以(並將)看到該間隔變化(LocationListener的不會總是與精確500ms的間隔稱爲)

50是minDistance纔會並根據該文檔:最小距離間隔通知,以米爲單位。所以這不影響準確性,它只定義位置更新的觸發器。 (如果您移動minDistance,則發生觸發)。因此,這不影響準確性。

然而,您LocationListener的將返回android.location.Location,以及暴露的精確度(修復米數的準確度)

+0

所以你說,它實際上並不重要多少次更新? – 2010-11-22 08:31:31

+0

時間間隔越短,您獲得的位置更新就越多。在這些位置更新中,您可以選擇最準確的一個。有關一些常見用例,請參閱http://developer.android.com/guide/topics/location/obtaining-user-location.html。 我也建議你在現場進行測試,因爲通過模擬器模擬GPS位置更新是有限的,並不總是反映真實世界的情況。 同時考慮到電池壽命,因爲在請求位置更新時不斷啓用GPS,可能會耗盡電池電量。 – ddewaele 2010-11-22 08:40:39

+0

好的謝謝。所以還有一個問題:)我想要獲得一次位置,併發送短信短信。我應該做任何改變嗎?我如何確保在獲取位置後才發送短信? – 2010-11-22 09:09:26