Android 检查当前时间?

Android 检查当前时间?,android,Android,我知道我们可以使用System.currentTimeMillis()以获取Android中的当前时间 但如果我使用该代码,当用户手动更改时间时,值将相应地更改 除了从后端通过API获取当前时间(考虑到这将是突然的低信号),是否有任何Android API可以用来检测时间变化或真实的当前时间 难道没有任何Android API可以用来检测时间变化或真实的当前时间吗 不。从操作系统的角度来看,用户设置的时间是“真实的当前时间”。它是用户的设备,而不是您的设备 欢迎您考虑其他的“真正的当前时间”,但

我知道我们可以使用
System.currentTimeMillis()
以获取Android中的当前时间

但如果我使用该代码,当用户手动更改时间时,值将相应地更改

除了从后端通过API获取当前时间(考虑到这将是突然的低信号),是否有任何Android API可以用来检测时间变化或真实的当前时间

难道没有任何Android API可以用来检测时间变化或真实的当前时间吗

不。从操作系统的角度来看,用户设置的时间是“真实的当前时间”。它是用户的设备,而不是您的设备


欢迎您考虑其他的“真正的当前时间”,但是任何这样的时间源都将在设备之外,例如GPS信号、SNTP时间服务器等。

< p>您可以尝试<代码> StaseCalth.UpTimeMILISH()/<代码>或<代码> StaleCalth.ELAPSSEDALSETIME()如果您对实际时间不感兴趣。

从理论上讲,您可以执行以下操作:

  • 在应用程序生命周期的某个时间点(启动时,第一次连接到internet)记录“实时当前时间”,并与设备时间进行比较,并记录增量时间(时差)

  • 钩住用户对日期/时间的更改。请参阅stackoverflow post:,并更新新的增量时间


  • (理论上)似乎比较直截了当。所以,至少在后端不可用的情况下,您可以在一定程度上依赖此增量时间。

    如果他正在使用internet。你可以从互联网上获得时间。是的,我知道这个选择。但考虑到我的应用程序只在一个地方使用,我担心因为那里的人太多,信号或互联网连接会突然变差。你不能。用户可以将时间更改为他们想要的任何时间,而您对此没有任何控制权。Internet时间可能是您可以控制的唯一选项-尤其是当时间来自您的服务器而不是来自第三方时。如果您有Internet连接,请按照此url从Internet获取标准时间,我仍然无法想出与upTimeMillis或elapsedRealTime相结合的解决方案。好的。我放弃了从SNTP获得时间。是的,我也考虑过这个解决方案,但是改变了的动作时间并不像其他帖子中提到的那样可靠。