如何使用Android获得最准确的时间?

斯科蒂

我真的不认为这个问题是重复的。
大多数类似问题的答案都说使用System.currentTimeMillis()作为最准确的时间,但是我注意到两个并排的Android设备可能彼此之间的间隔可能长达5秒或更长时间,或者(更重要的是)实时,我相信currentTimeMillis()会反映出这种差异。

因此,我真正想要的是一种全面的解决方案,以在给定的时刻获得最准确的时间。
例如,它将从GPS开始,如果不可用或没有信号,则退回到SNTP,或者如果这不起作用,请Android通过其自己的SNTP或运营商NITZ刷新挂钟。

我的目标是在0.1秒内达到准确度。
那可能吗?
谢谢。

常用软件

那可能吗?

那取决于您对“那个”的定义。

因此,让我们首先检查您的其余材料...

它将从GPS开始

GPS时间不是特别精确,具体取决于硬件我认为您还需要使用anNmeaListener来尝试直接从NMEA语句中解析时间数据,因为AFAIKgetTime()开启Location是系统时间,而不是GPS时间。另外,请记住,GPS接入不是通用的(用户可能已将其禁用, 用户可能已将设备置于飞行模式, 用户可能在没有可用GPS信号的大建筑物中)。

退回到SNTP

您可以尝试许多SNTP客户端代码位。请记住,互联网连接不是通用的(设备可能在任何已知的接入点之外仅是WiFi,用户可能已将设备置于飞行模式,设备可能具有移动数据功能,但在当前位置没有信号强度)。

如果这样不起作用,请Android通过自己的SNTP或运营商NITZ刷新壁钟

可以想象,有根设备可以某种方式执行此操作,但是Android SDK中没有针对普通应用程序强制执行此类刷新的操作。请记住,连接不是通用的(请参见上段中的花名册)。

因此,回到:

那可能吗?

如果“ that”是可以在所有情况下都可以使用的解决方案,那么不能,这是不可能的,因为不能保证您可以与任何时间源进行通信。

如果“那”是可以保证设备具有Internet连接的解决方案,那么您需要询问SNTP客户端库实现者是否可以达到100ms的精度。除了连接性问题外,SNTP是您完全可以控制的唯一策略之一,因为GPS可能不准确,NITZ也不是您自己管理的东西。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获得最准确的用户位置

来自分类Dev

Android最准确的Location API

来自分类Dev

使用date对象计算日期时间段的最准确方法

来自分类Dev

如何从头到尾获得准确的时间

来自分类Dev

如何在Android中获得准确至5微秒的后续时间戳

来自分类Dev

如何使用 fetch 过滤以获得准确的结果?

来自分类Dev

如何获得SQL Server存储过程的准确时间?

来自分类Dev

如何获得释放密钥的正确时间(JS'keyup 不准确)?

来自分类Dev

使用 perf-stat 获得准确的时间测量

来自分类Dev

如何使用较少字符的Maps API获得更准确的结果

来自分类Dev

这是使用scipy推断的最有效,最准确的方法吗?

来自分类Dev

在8086 dos组装中获得准确的时间

来自分类Dev

如何获得BigInteger的准确长度?

来自分类Dev

获取最准确的当前坐标

来自分类Dev

如何在不使用系统时区和系统时钟的情况下在 time4j 获得准确的 UTC 当前时间戳?

来自分类Dev

如何快速获得任何音频文件的准确持续时间?

来自分类Dev

如何使用Moment JS获得时间

来自分类Dev

如何使用JuMP / GLPK获得求解时间

来自分类Dev

如何使用php获得正确的时间

来自分类Dev

如何获得不准确计算的例外?

来自分类Dev

如何从opencv获得准确的idft结果?

来自分类Dev

如何从opencv获得准确的idft结果?

来自分类Dev

如何获得std :: string的准确长度?

来自分类Dev

如何获得准确的音频时基

来自分类Dev

Twitter API (Tweepy) 如何获得准确的术语

来自分类Dev

如何从http服务获得准确响应

来自分类Dev

如何在Android应用程序中获得准确的信号强度?

来自分类Dev

在C ++中获得准确的执行时间(微秒)

来自分类Dev

从log1pf()计算asinhf()的最准确方法?

Related 相关文章

热门标签

归档