我正在开发一款Android应用。输入错误密码3次时,我想锁定我的应用程序10分钟。如果我使用当前时间戳来比较净时间,那么我就可以获得我的解决方案,但如果我从设置中手动更改设备时间,那么它就无法正常工作。这个问题有没有永久的解决方案。感谢您的帮助。
答案 0 :(得分:0)
为此,您无法使用系统时间。下面是最佳解决方案,因为它是本地系统时间。
System.nanoTime()
根据文件:
返回可用的最精确计时器的当前时间戳 本地系统,以纳秒为单位。相当于Linux的 CLOCK_MONOTONIC。此时间戳应仅用于测量a 持续时间,将其与同一设备上的另一个时间戳进行比较。 此方法返回的值没有定义的对应关系 挂钟时间;零值通常是设备持续的时间 引导。如果你想知道它是什么时候,请使用currentTimeMillis()。
供参考,请参阅here
答案 1 :(得分:0)
嗯,您可以联系互联网时间服务(例如{{1}})。
有人可能有权修改他们的设备时间,但我怀疑(尽管有黑名单)他们有能力进入并操纵NIST服务器。
但任何解决方案都存在潜在问题,例如没有网络访问,或设备所有者可以拦截NIST服务器的DNS查找等。
我知道,在某个阶段,一位朋友曾经花了几个小时的时间来推动他们从老虎机应用程序中获得新的免费资金。但不幸的是,这意味着时间总是从它应该的位置出来,回滚意味着未来甚至更多延迟。