当前位置:首页 > 嵌入式 > 嵌入式软件
[导读] 名词解释:NITZ:NITZ(Network Identity and Time Zone)或网络标识和时区,是一种用于自动配置本地的时间和日期的机制,同时也通过无线网向移动设备提供运营商信息。NITZ

 名词解释:

NITZ:NITZ(Network Identity and Time Zone)或网络标识和时区,是一种用于自动配置本地的时间和日期的机制,同时也通过无线网向移动设备提供运营商信息。NITZ是自从PHASE 2+ RELEASE 96 的GSM中的可选功能,经常被用来自动更新移动电话的系统时钟。

NTP:NTP(Network Time Protocol)提供准确时间,首先要有准确的时间来源,这一时间应该是国际标准时间UTC。 NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。这样就有了准确而可靠的时间源。时间按NTP服务器的等级传播。

1.在setting中勾选“自动确定时间和日期”,“自动确定时区”后只是对key值为AUTO_TIME和AUTO_TIME_ZONE的Preference进行了赋值.

源码路径:packages/apps/Settings/src/com/android/settings/DateTimeSettings.java

2.在/frameworks/base/services/java/com/android/server/NetworkTimeUpdateService中对上述的key值进行了监听,在检测到key值改变的时候,就会发送消息mHandler.obtainMessage(mMsg).sendToTarget();

10void observe(Context context) {

ContentResolver resolver = context.getContentResolver();

resolver.registerContentObserver(Settings.Global.getUriFor(Settings.Global.AUTO_TIME),

false, this);

}

@Override

public void onChange(boolean selfChange) {

mHandler.obtainMessage(mMsg).sendToTarget();

}

handler接到消息后进行消息处理调用onPollNetworkTime(msg.what),发现无论是数据或者是wifi下都是调用该方法进行更新

9public void handleMessage(Message msg) {

switch (msg.what) {

case EVENT_AUTO_TIME_CHANGED:

case EVENT_POLL_NETWORK_TIME:

case EVENT_NETWORK_CONNECTED:

onPollNetworkTime(msg.what);

break;

}

}

3.在onPollNetworkTime方法中先判断是否勾选“自动更新时间”,如果没勾选直接退出,如果勾选了再看,如果更新的NITZ时间不为NOT_SET(-1),且更新间隔小于mPollingIntervalMs,mPollingIntervalMs=24小时,那么就直接更新NITZ的时间,否则用NTP同步时间。

 

6// If NITZ time was received less than mPollingIntervalMs time ago,

// no need to sync to NTP.

if (mNitzTimeSetTime != NOT_SET && refTime - mNitzTimeSetTime < mPollingIntervalMs) {

resetAlarm(mPollingIntervalMs);

return;

}

 

11final long ntp = mTime.currentTimeMillis();

mTryAgainCounter = 0;

// If the clock is more than N seconds off or this is the first time it's been

// fetched since boot, set the current time.

if (Math.abs(ntp - currentTime) > mTimeErrorThresholdMs

|| mLastNtpFetchTime == NOT_SET) {

// Set the system time

......

if (ntp / 1000 < Integer.MAX_VALUE) {

SystemClock.setCurrentTimeMillis(ntp);

}

当从时间服务器上获取的NTP时间和当前时间之差的绝对值大于一个阀值,系统认为当前时间错误,需要更新时间。

总结:

如果时间自动同步选项未勾选,直接返回;

如果NITZ已同步且上次NITZ同步未超过24小时,则设置定时器24小时后再触发同步,即广播NetworkTimeUpdateService.ACTION_POLL;

如果NTP上次成功同步超过24小时或用户勾选自动同步选项,则进行下面的NTP同步,否则同上设置定时器24小时后再触发同步;

如果上次NTP成功同步超过24小时,则发起同步mTime.forceRefresh();

如果同步成功,获取此刻NTP时间ntp=mTime.currentTimeMillis();

如果同步时间与当前本机时间误差超过指定值阀值,则把ntp设置为本机时间SystemClock.setCurrentTimeMillis(ntp)

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

启智扬帆谱新章,携手共进续辉煌  北京2024年5月6日 /美通社/ -- 春风轻拂,万物复苏,4月25日,北京邮电大学-法国里昂商学院EMBA (中外合作办学) 项目2024级春季班开学典礼在北京邮电大学经...

关键字: 北京邮电大学 人工智能 数字化 NI

海口2024年4月16日 /美通社/ -- 4月14日,在中法建交60周年之际,科学护肤先锋品牌Galenic法国科兰黎受邀入驻第四届中国国际消费品博览会(以下简称"消博会")法国馆。Galenic法...

关键字: NI IC BSP ACTIVE

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

上海2023年9月12日 /美通社/ -- 近日,由SGS通标标准技术服务有限公司主办、同济大学张存满教授联合发起的"SGS中国制氢行业高峰论坛"于成都圆满闭幕。本次会议得到了上级单位中国标准化研究院...

关键字: AN 进程 NI 测试

(全球TMT2023年9月8日讯)德国时间9月1日至5日,TECNO征战2023年德国柏林国际消费电子展(IFA)。除了两款首次亮相的TECNO MEGABOOK笔电新品,TECNO还在展会期间发布了两款“全球首创”概...

关键字: TE PC NI ST

北京2023年9月8日 /美通社/ -- 日前,"云融数智 创领未来"2023浪潮云海云图生态峰会产品技术伙伴专场在北京成功举办。来自开源基金会、云安全、PaaS、数据库服务、容灾备份等领域的头部领先...

关键字: 云安全 私有云 数据库 NI

TECNO携两款"全球首创"概念机震撼登场2023德国IFA科技展会 MEGA MINI Water-Cooling游戏主机及PhUltimate卷轴屏引领创新科技新标杆 柏林2023...

关键字: TE NI ST 游戏主机

商家可在WhatsApp建构商店,顾客更可透过对话下单(Chat-to-Order)功能选择取货门店,并使用WhatsApp传送付款链接 善用Meta不同的广告平台,能为商家带来更高的流量及转化率 3香港使用Wh...

关键字: APP SAP NI IC

- NIPPON EXPRESS全新品牌宣传片带您走进全球物流的幕后 东京2023年9月4日 /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社于9月1日发布了全新品牌宣传片《Finding th...

关键字: EXPRESS NI IP PS

美迪特推出革命性的扫描设计口腔修复解决方案,使牙医能够设计出AI驱动精度的牙冠和牙桥、嵌体、咬合板和临时冠。 美迪特产品完美集成3D制造技术,开创了扫描到设计口腔修...

关键字: CAD NI 扫描仪 AD软件
关闭
关闭