2017-08-08 99 views
0

這是我第一次在這裏詢問Stackoverflow,我顯然在這個問題上很難。如何確定用戶是否更改了設備的日期以激活基於日期的代碼操作?Android:實際日期和設備日期

我真的需要比較沒有互聯網連接的實際日期和設備日期。

例如: 當我點擊這個按鈕,它只會在8月29日打開更改日期將允許我以訪問按鈕的功能。

回答

1

您可以使用網絡時間協議。它提供了網絡時間和日期,因此用戶不能改變電話日期來欺騙它。

谷歌已經在一個開源:This link


編輯

提供有這一代碼示例:

SntpClient client = new SntpClient(); 
if (client.requestTime("time.foo.com")) { 
    long now = client.getNtpTime() + SystemClock.elapsedRealtime() - client.getNtpTimeReference(); 
} 

它把time.foo.com你應該把time.google.com。您可能需要以毫秒爲單位的超時添加到requestTime(host,timeout_millis)方法。


而對於NTP服務器,您可以使用

time.google.com 

提供Here

+0

我稍後再試。謝謝! –

+0

好的。讓我知道它是否適用於您 – Ivan

+0

我很難使用SntpClient類。當我使用getNtpTime()並將其轉換爲日期時,它僅返回8:00:00。我在哪裏放置「time.google.com」? –

0

如果你能確保安裝了您的應用程序時,它具有正確的時間的話,你可以實現一個監聽器知道手動更換時鐘,然後做你想做的事情。參考:Is there a way to detect when the user has changed the clock time on their device?

還有2種選擇,一種是使用GPS獲取時間,另一種是從網絡獲取時間。對網絡不太確定,這是NTP相關的東西,當我有機會時會探索。讓我知道你的實現。

+0

我明白了。我也會檢查這個線程。謝謝! –

相關問題