具有毫秒精度和误差估计的Android时间记录器

具有毫秒精度和误差估计的Android时间记录器,android,timestamp,ntp,Android,Timestamp,Ntp,简短的可跳过介绍: 我在离我住的地方几公里的康复医院工作。医院支付公共汽车服务费,在某些固定地点接送员工。有个巴士司机,7点来接我们。这家伙非常守时。我的意思是,这家伙必须处于十分之一秒的状态。当他打开车门时,时钟从6:59转为7:00。我想记录他30天的守时时间,为他制作一个漂亮的Excel电子表格。错误传播和一切。他甚至可能会加薪,谁知道呢 我将制作一个简单的应用程序,以毫秒为单位节省时间,这似乎很简单,Stackoverflow中有六种解决方案 因此,对于问题: 我点击了一个小部件上的按钮

简短的可跳过介绍:

我在离我住的地方几公里的康复医院工作。医院支付公共汽车服务费,在某些固定地点接送员工。有个巴士司机,7点来接我们。这家伙非常守时。我的意思是,这家伙必须处于十分之一秒的状态。当他打开车门时,时钟从6:59转为7:00。我想记录他30天的守时时间,为他制作一个漂亮的Excel电子表格。错误传播和一切。他甚至可能会加薪,谁知道呢

我将制作一个简单的应用程序,以毫秒为单位节省时间,这似乎很简单,Stackoverflow中有六种解决方案

因此,对于问题:

我点击了一个小部件上的按钮。它以毫秒为单位获取时间。它将时间保存在一个文件(.txt、.csv,随便什么)

您如何估计NTP同步Android手机的平均误差?保存时间戳最精确的方法是什么


提前感谢

首先想到的是时间是相对的,以爱因斯坦的方式:)那么,如果你的参考是与NTP同步的Android手机,那么驾驶员的时间参考是什么?如果同步或计时以某种方式出现,在你的手机上被延迟,你会觉得他有一天迟到了,而事实上,相对于他的参考人来说,他恰恰是准时的呢

但是为了解决这个问题,我想你可以先假设他和你有相同的时间参考:网络中的某个地方。我不知道Android通过时间协议进行同步的细节,但我知道我构建了一个所谓的。就你的情况而言,我想我的建议可能会有所帮助。它尝试请求自Unix纪元以来的毫秒数,然后读取响应。其特点是,它为您提供了一个框架,在此框架上,您可以通过尝试放弃网络延迟来估算与服务器相比的真实时间

需要记住的一点是:上面的解决方案向我的站点(又称GoDaddy服务器)发出请求,这可能与Android手机同步的网络位置不同。请随意更改请求位置


记住第二件事:这个兔子洞很深:)任何测量都不可能完美。你可以尝试达到人性化/合理的精度,但它永远不会完美(例如,还有其他未知数:如果你按下按钮时Android CPU出现延迟,或者你自己的反应需要几毫秒怎么办?你按下按钮的那一刻与门实际打开的那一刻不同,我的印象是它们至少相隔几毫秒)

一个城镇的红灯是同步的,因此车辆相对准时。