我的应用如何判断当前日期是真实的当前日期?

时间:2011-03-09 15:19:46

标签: android time

我的目标是创建一个版本的应用程序,该版本将在特定日期过后过期。我希望时间以绝对日期到期,而不是相对日期,

因此我的应用程序使用此代码来检查当前时间:

Calendar nowCalendar = Calendar.getInstance();

但是,用户可以通过更改日期和时间来操纵此操作。时间设置。

问题: 我的应用如何判断用户是否操纵了他们的日期时间? 要么 如何判断用户是否设置了“自动”日期时间设置?

您能否建议在当前时间检查互联网的最简单方法?

2 个答案:

答案 0 :(得分:8)

每次启动或退出应用程序时,请保存当前日期时间。如果下次系统日期是较早的值,那么您就知道时间已被篡改。

只有您可以访问互联网,才能拥有完美的解决方案。如果你这样做,那么你可以通过一百万种方式查看时间,甚至回调你的服务器以检查试用许可证是否仍然有效。

检查互联网时间的一种方法是向HTTP服务器发出简单请求。例如谷歌(你应该使用自己的服务器)。

请求:

HEAD / HTTP/1.1
Host: google.com

响应:

HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Wed, 09 Mar 2011 16:04:48 GMT
Expires: Fri, 08 Apr 2011 16:04:48 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block

如您所见,所有HTTP服务器都会在Date标题中报告当前系统日期。

但话说回来,这根本不重要。如果Internet连接对于您的软件工作至关重要,您可以在自己的服务器上使用在线许可证检查。如果没有,那么用户可以在使用时按下按钮关闭连接。

答案 1 :(得分:-1)

您可以访问实时投掷网络时间协议。您可以在Wikipedia

中查看定义