Android:实际日期和设备日期
这是我第一次在这里询问*,我显然在这个问题上很难。如何确定用户是否更改了设备的日期以激活基于日期的代码操作?Android:实际日期和设备日期
我真的需要比较没有互联网连接的实际日期和设备日期。
例如: 当我点击这个按钮,它只会在8月29日打开更改日期将允许我以访问按钮的功能。
您可以使用网络时间协议。它提供了网络时间和日期,因此用户不能改变电话日期来欺骗它。
谷歌已经在一个开源: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
如果你能确保安装了您的应用程序时,它具有正确的时间的话,你可以实现一个监听器知道手动更换时钟,然后做你想做的事情。参考:Is there a way to detect when the user has changed the clock time on their device?。
还有2种选择,一种是使用GPS获取时间,另一种是从网络获取时间。对网络不太确定,这是NTP相关的东西,当我有机会时会探索。让我知道你的实现。
我明白了。我也会检查这个线程。谢谢! –
我稍后再试。谢谢! –
好的。让我知道它是否适用于您 – Ivan
我很难使用SntpClient类。当我使用getNtpTime()并将其转换为日期时,它仅返回8:00:00。我在哪里放置“time.google.com”? –