如何使用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

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

来自分类Dev

如何使用Moment JS获得时间

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

Android最准确的Location API

来自分类Dev

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

来自分类Dev

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

来自分类Dev

获取最准确的当前坐标

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何获得BigInteger的准确长度?

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何获得准确的音频时基

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

Related 相关文章

热门标签

归档