如果未启用自动时钟,如何知道本地时间与android设备的时间差?我需要它的程序



我有一个具有正确时间的区块链api,但是当一些用户自己设置时间的android设备(未启用自动时钟)时,由于这两个时间之间的差异,我在使用此api时遇到了问题。你能帮我找出这个差异吗?currentmilliseconds()方法返回用户设置的时间。

你没有其他的方法,除了与第三方同步,从自己的服务器端或一些web服务获取当前时间,并基于它计算时间。你可以计算"实时"one_answers"实时"之间的差异。和"设备上的时间",但用户仍然可以最小化你的应用程序,并在它的工作期间(Service在后台?)可以再次更改本地设置的时间

请注意,还有SystemClock.elapsedRealtime()返回自上次启动以来的运行时间。用户无法在运行时更改(只能通过重新启动设备),因此可能有助于计数差异

val synced = getTimestampFromWeb() // instead of unreliable System.currrentMillisSecond()
val elapsedWhenSynced = SystemClock.elapsedRealtime()
// store these in some 
...
// use below line anytime later 
val currentTime = synced + (SystemClock.elapsedRealtime() - elapsedWhenSynced)

最新更新