2017-03-16 325 views
1

我在docs中看到對象位置有一個方法getTime()是否有可能從GPS獲取當前時間

在我的應用程序中,我需要服務器時間,但有時,應用程序可能處於脫機狀態,所以我沒有選擇獲取細胞時間。我很樂意使用Location.getTime,但是我不清楚這個時間是從哪裏來的?

Cel或GPS衛星電視?

這是獲取應用程序離線時的當前小時的可靠數據嗎?

回答

0

如果您不需要非常精確的時間,並且只是想知道日期而不考慮精確的時間,這很有用。由於作爲文檔說:

通過的LocationManager產生的所有位置都保證有 有效UTC時間,但是請記住,系統時間可能已經 改變,因爲生成的位置。

另外看看getElapsedRealtimeNanos()它看起來更精確。

+0

是的,但問題是:這次來自哪裏 –

+0

你應該閱讀這篇文章,非常簡單和有用:https://en.m.wikipedia.org/wiki/GPS_disciplined_oscillator – AMS

+0

不要忘記,一些設備具有A-GPS,其可能取決於不同的方式來計算不僅在衛星上的位置,而且還使用WiFi網絡和附近的設備。我更喜歡你看看這篇文章:http://stackoverflow.com/questions/7017069/gps-time-in-android – AMS

0

如所討論的in this questionLocation.getTime()返回任一

  • 設備時間(System.currentTimeMillis())如果Location.getProvider().equals(LocationManager.NETWORK_PROVIDER)

  • 的GPS(衛星)的時間(以毫秒爲單位而是以1s精度)如果Location.getProvider().equals(LocationManager.GPS_PROVIDER)

由於GPS定位是基於精確時間的知識,所以我認爲它至少與從服務器獲得的時間一樣可靠。 您可以將當地時區應用於GPS時間戳以獲取人類可讀的時間,這應該等於正確同步的設備時間(在我的情況下,大多數設備不是,所以使用GPS時間更好)。