[android]时间自动更新机制

本文介绍了手机中的两种时间同步方式:NITZ 和 SNTP。NITZ 需要运营商支持并通过特定方法实现时间同步;SNTP 则直接从网络获取时间信息。文章详细解释了这两种方式的工作原理及如何在不同条件下选择合适的同步方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

同步分两种: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。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值