当前位置:首页 > 嵌入式 > 嵌入式软件
[导读] 名词解释: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)

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

深圳2025年8月12日 /美通社/ -- 全球消费电子行业领导者、Mini LED和超大屏[1]电视销量全球第一的TCL欣然宣布,公司将参加9月5日至9日在柏林举办的2025年德国柏林消费电子展(IFA 2025)。作...

关键字: TCL 消费电子展 NI 大屏

北京2025年8月11日 /美通社/ -- 2025年8月8日,由紫光汉图举办的 "双引擎•印未来"紫光打印机新品发布会正式在北京通明湖会展中心举行。 工业和信息化部电子信息司电子系统处领导、中国电...

关键字: 打印机 紫光 NI 核心技术

加快开发进程;提升质量、安全性、性能与成本效益 利用耐世特在底盘领域的专业知识和线控技术产品组合 美国密西根州奥本山2025年8月11日 /美通社/ -- 耐...

关键字: MOTION 软件 运动控制 NI

-Cognizant正在筹办全球最大规模的氛围编程活动,以提升数千名员工的AI素养 为抓住人工智能经济将创造的巨大机遇,Cognizant与Lovable、Windsurf、Cursor、Gemini Code Ass...

关键字: 编程 NI AN PI

-Cognizant推出AI Training Data Services,助力企业级AI模型加速开发 Cognizant是数据与AI模型训练合作伙伴,长期深受大型数字原生先锋企业信赖,助力其训练全球最先进的AI/机器...

关键字: NI AN AI模型 SERVICES

葡萄牙波尔图2025年7月31日 /美通社/ -- 全球领先的新一代制造执行系统供应商凯睿德制造宣布收购专注于高科技制造图像分析的AI专家公司 Convanit。本次收购是扩展凯睿德制造数据平台能力的重要一步,将助力客户...

关键字: 智能制造 图像分析 NI AN

2025年,该实验室已新获两项美国授权专利,开源了一个关键AI开发平台,并赢得了GECCO金奖 新泽西州提内克2025年7月25日 /美通社/ -- Cognizant(Nasdaq:CTSH)今日宣布,其AI实验室新...

关键字: AI NI AN BSP

上海2025年6月30日 /美通社/ -- 6月30日,文心大模型正式开源,黑芝麻智能即日起快速启动与文心大模型技术合作。 黑芝麻智能将基于文心大模型,打造行业领先的车端推理引擎,为企业、开发者提供真正可用、好用、可落...

关键字: 模型 NI 开源 多模

与英伟达的技术合作致力加速生产制造的数字化转型 舍弗勒全球工厂将通过AI解决方案的应用加速制造工艺的革新,并提升产品质量 舍弗勒凭借数十年在制造领域的技术积累,推动工业元宇宙持续发展 巴黎和赫...

关键字: 数字化 英伟达 SE NI

西塘 2025年5月30日 /美通社/ -- 全球营销衡量与体验管理平台 AppsFlyer在西塘成功举办 2025 MAMA 移动互联网高层峰会(以下简称 2025 MAMA)。峰会汇集了超过 100 位移动互联网企...

关键字: 移动互联网 AI APPS NI
关闭