关于2019年4月7日GPS周数翻转的情况说明
最后更新时间: 2019年11月04日

尊敬的开发者:


北京时间2019年4月7日8时起,由于全球定位系统(GPS)的周数翻转事件(GPS Week Number Rollover),部分GPS芯片会因未对“GPS周数翻转”进行兼容处理,导致从GPS中获取的日期持续错误。


 此事件为小概率事件,大部分新款智能手机及芯片不会遇到该问题,但不排除个别手机及芯片未对该问题进行兼容处理。为避免影响开发者使用,现将本次问题的原因、影响、解决方案公布如下,如开发者遇到类似情况可供参考。

 

一、问题原因

 本次事件是由于GPS用来处理导航信号的周元素(Week Element)的方式引起的一个已知问题。GPS采用10比特定义域来对每个GPS时间信息中的周数进行编码,最多可以处理1024个周,这个期间被称为一个Epoch。在每个Epoch的结束时,接收机将周数复位为第0周,然后再次开始计数。GPS第一次周数清零时间为1999年8月22日,第二次清零为2019年4月7日。(注:因不同厂商GPS芯片内部处理逻辑不同,日期可能为1999年8月22日或其他错误日期)

 

二、影响产品

 Android 定位SDK4.5.0及以下版本

 

三、影响点

 1. 使用上述高德定位SDK获取到的定位类型为GPS定位的定位点时间,部分设备会返回错误日期。

 2. 下游业务逻辑依赖此时间进行逻辑处理的,会导致判断异常。


四、解决方案

 针对本次事件,在GPS周数翻转时刻,高德开放平台将采用系统时间和GPS对比的方法,如果二者相差超过一年,则时分秒取GPS时间,年月日取系统时间,以解决周数翻转带来的时间跳变问题使开发者内部用错时间。

 

五、建议修复方式

 方案一:自主排查GPS定位时间的使用范围,当该时间参与业务逻辑时,需要添加如下兼容逻辑。

 点击查看示例代码>>

 方案二:更新至新版Android 定位SDK(新版本已于4月2日发布)。

 点击下载新版Android 定位SDK>>


 高德开放平台

 2019年4月3日

返回顶部 示例中心 常见问题 智能客服 公众号
二维码