2011-02-18 83 views
8

我們正在創建一個位置啓用的應用程序,用戶使用此應用程序在該字段中記錄某些事件。確保正確的日期/時間

事件數據的重要部分是事件發生的時間。用戶在線時這不是問題,但我們也支持用戶離線時的情況(通過記住&以後的同步事件)。

可能會出現用戶脫機的情況,他們會更改手機上的時間,從而錯誤記錄事件時間。

因此,如果設備可能處於脫機狀態,那麼確保我們獲得正確時間的最佳方法是什麼?一些想法:

  1. GPS時間。有可能獲得它嗎?
  2. 追蹤用戶所做的系統時間變化?
  3. 還有其他想法嗎?

注意:時間確實需要二次精度,大約一分鐘的精度就可以。注2:我們正在爲Android和iPhone創建移動應用程序,所以我對通用解決方案以及針對這兩種平臺的解決方案感興趣。

+0

我認爲GSM網絡能夠提供當前的時間和許多。所以如果手機在網絡上,它應該與那個時間同步。 – 2011-02-18 13:34:10

+0

當設備在線時這是一個非問題 - 我們可以在事件發送時檢查服務器上的時間。該問題僅在設備脫機時出現。 – 2011-02-18 13:40:24

回答

2

我個人不會太在意這種情況。有人故意改變他們的Android的時間(全天定期同步到時間服務器),而離線對我來說似乎很低。話雖如此,我可以看到補償這一點的唯一方法是讓服務在後臺運行,以保持自從記錄位置數據離線後經過的秒數。一旦上傳到您的服務器,您可以使用經過的秒數來計算當前UTC時間的時間偏移量。這是一個非常可怕的經歷,但它會工作。

GPS時間是一個有趣的想法,但Android允許SDK的用戶發送模擬位置到他們的設備。我不確定你是否能夠可靠地跟蹤系統時間的變化,即使你可以在事實上沒有當前實時情況下捕獲它們。

1

由於非常類似的原因,我們在我們的應用中使用GPS時間。由於我們的用戶處於不同的時區,並且我們希望在當地時間,所以我們從服務器定義他們在安裝時所處的時區(他們不會移動太遠)。沒有想到模擬GPS的位置,但你需要一個相當先進的用戶來做到這一點。