这是我第一次在这里询问Stackoverflow,我显然很难在这个问题上。如何识别用户是否更改了设备的日期以激活基于日期的代码操作?
我真的需要在没有互联网连接的情况下比较实际日期和设备日期。
例如: 单击此按钮时,它将仅在8月29日打开。更改日期将允许我访问按钮的功能。
答案 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相关的东西会探索。请告诉我您的实施情况。