两个概念:
1.NITZ(network identity and time zone)同步时间
NITZ是一种GSM/WCDMA基地台方式,必须插入SIM卡,且需要operator支持;可以提供时间和时区信息
中国大陆运营商基本是不支持的
2.NTP(network time protocol)同步时间
NTP在无SIM卡或operator不支持NITZ时使用,单纯通过网络(GPRS/WIFI)获取时间,只提供时间信息,没有时区信息(因此在不支持NITZ的地区,自动获取时区功能实际上是无效的)
NTP还有一种缓存机制:当前成功获取的时间会保存下来,当用户下次开启自动更新时间功能时会结合手机clock来进行时间更新。这也是没有任何网络时手机却能自动更新时间的原因。
此外,因为NTP是通过对时的server获取时间,当同步时间失败时,可以检查一下对时的server是否有效,并替换为其他server试一下。
3.如何判断手机通过哪种方式更新时间
设置一个错误的时区,查看时区是否有被更新正确,若时间和时区都有更新正确,那么就是GSM网路有送NITZ消息上来;
若只有时间更新,而时区没有变化,就是NTP方式,即它通过网络(GPRS/WIFI)连接到server去获取时间。
自动时间
自动时间是NTP方式
如果解析失败,可以考虑修改framework/base/core/res/res/values/config.xml文件
<!-- Remote server that can provide NTP responses. -->
<string translatable="false" name="config_ntpServer">2.android.pool.ntp.org</string>
自动时区
自动时区需要NITZ,就是说必须要有SIM卡才行。

本文介绍了自动时区和自动时间的实现原理,包括NITZ(Network Identity and Time Zone)和NTP(Network Time Protocol)。NITZ依赖于SIM卡和运营商支持,而NTP则通过网络获取时间。当NTP同步失败时,可检查服务器有效性。自动时间通常使用NTP,而自动时区需NITZ,需要SIM卡配合。

被折叠的 条评论
为什么被折叠?



