【发布时间】:2016-04-13 00:10:32
【问题描述】:
我知道有很多与此相关的问题,但它们似乎都不能解决我的问题。 我想检查用户设备上的日期是否正确,开始一个活动,但如果用户设备上的日期错误,它应该显示一个错误活动,要求用户调整他们的日期,就像 whatsapp 的实现方式一样他们的..
【问题讨论】:
-
请添加一些代码以显示您尝试过的内容。否则您的问题很快就会被标记为关闭。
我知道有很多与此相关的问题,但它们似乎都不能解决我的问题。 我想检查用户设备上的日期是否正确,开始一个活动,但如果用户设备上的日期错误,它应该显示一个错误活动,要求用户调整他们的日期,就像 whatsapp 的实现方式一样他们的..
【问题讨论】:
您必须有服务器的时间戳来确定设备中的时间是否是假的。
Npt pool 是一项免费服务,可帮助您获得真正的时间戳。
要使用,设备必须在线,没有互联网就无法查看。
将类 SntpClient 复制到您的项目:https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/net/SntpClient.java
代码:
SntpClient client = new SntpClient();
long now = -1;
if (client.requestTime("pool.ntp.org", TIME_OUT)) {
now = client.getNtpTime();
if (Math.abs(now - System.currentTimeMillis()) >= ONE_DAY){
// the device's time is wrong
startErrorActivity();
...
} else {
// the different time lower than 1 day
startNextActivity();
}
} else {
// something wrong, can't get server's time
}
不要忘记在清单中添加INTERNET 权限
【讨论】:
client.requestTime 现在总是返回 false。