Android:实际日期和设备日期

时间:2017-08-08 06:17:29

标签: android date

这是我第一次在这里询问Stackoverflow,我显然很难在这个问题上。如何识别用户是否更改了设备的日期以激活基于日期的代码操作?

我真的需要在没有互联网连接的情况下比较实际日期和设备日期。

例如: 单击此按钮时,它将仅在8月29日打开。更改日期将允许我访问按钮的功能。

2 个答案:

答案 0 :(得分:1)

您可以使用网络时间协议。这提供了网络时间和日期,因此用户无法更改电话日期。

Google有一个开放源代码: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

答案 1 :(得分:0)

如果您可以确保在安装应用程序时它具有正确的时间,那么您可以实现一个监听器来了解手动时钟更改,然后执行您想要执行的操作。参考:Is there a way to detect when the user has changed the clock time on their device?

还有2个选项,一个用于获取使用GPS的时间,另一个用于从网络获取时间。对网络不太确定,当我有机会时,NTP相关的东西会探索。请告诉我您的实施情况。