【问题标题】:Android: How to check if users date is validAndroid:如何检查用户日期是否有效
【发布时间】:2016-04-13 00:10:32
【问题描述】:

我知道有很多与此相关的问题,但它们似乎都不能解决我的问题。 我想检查用户设备上的日期是否正确,开始一个活动,但如果用户设备上的日期错误,它应该显示一个错误活动,要求用户调整他们的日期,就像 whatsapp 的实现方式一样他们的..

【问题讨论】:

  • 请添加一些代码以显示您尝试过的内容。否则您的问题很快就会被标记为关闭。

标签: android date


【解决方案1】:

您必须有服务器的时间戳来确定设备中的时间是否是假的。 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 权限

【讨论】:

  • 设备未联网时如何实现?
  • ONE_DAY 的意思。!!
  • client.requestTime 现在总是返回 false
猜你喜欢
  • 2017-02-28
  • 1970-01-01
  • 1970-01-01
  • 2012-03-15
  • 1970-01-01
  • 2010-11-07
  • 2012-04-16
  • 1970-01-01
  • 2023-02-22
相关资源
最近更新 更多