您的位置:首页 > 移动开发 > Android开发

[android]时间自动更新机制

2014-08-13 17:33 417 查看
同步分两种:NITZ:需要运营商的支持,通过TOD(短波跳频通信)时间信息法进行同步,实现运营商网络侧和手机modem侧的时间同步。然后modem侧通过RIL主动上报时间和时区信息。

SNTP:从网络侧获取SNTP的时间,采用SNTP无法更新时区。

当选中自动更新时,在GsmServiceStateTracker.java和NetworkTimeupdateService.java中注册的contentObserver会分别触发,GsmServiceStateTracker中会发送在ACTION_NETWORK_SET_TIME的广播,给mNitzTimeSetTime赋值。NetworkTimeupdateService中会发送message,执行onPollNetworkTime(),如果NITZ时间不是NOT—SET,并且更新的时间小于POLLING——INTERVAL——MS,就直接更新NITZ的时间,否则使用SNTP更新时间。

可参考M812——CMCC中PR-699698

如果出现问题,查看

1.NetworkTimeUpdateService monitor WI-FI 和 Mobile网络状态。

2.只有在数据网络处于In Service状态下才去NTP server同步时间。

3.提供其他3个备份的NTP Server去同步时间。

如果测试中发现问题,首先确定当前网络运营是否支持NITZ,如果支持NITZ,而时间未能同步,请从开机就抓取QXDM

log和tcpdump log。

如果当前网络运营不支持NITZ,在确保数据网络正常的情况下从开机就抓取tcpdump

log。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: