自动时区和自动时间的实现

两个概念:


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文件

   
    2.android.pool.ntp.org


自动时区

自动时区需要NITZ,就是说必须要有SIM卡才行。


你可能感兴趣的:([java],[工作记录])