Android 时间更新机制之RIL更新时间
来源:互联网 发布:山海经真实性知乎 编辑:程序博客网 时间:2024/06/05 11:42
1、RIL.java
CdmaServiceStateTracker以及GsmServiceStateTracker,在系统启动时,会调用如下方式,该方法将Tracher中的Handler与RIL中的上报消息绑定在一起,即收到上报消息,就回调Handler中的某些方法。
@Override public void setOnNITZTime(Handler h, int what, Object obj) { super.setOnNITZTime(h, what, obj); // Send the last NITZ time if we have it if (mLastNITZTimeInfo != null) { mNITZTimeRegistrant .notifyRegistrant( new AsyncResult (null, mLastNITZTimeInfo, null)); } }
2、CdmaServiceStateTracker.java
调用方式如下:
protected CdmaServiceStateTracker(CDMAPhone phone, CellInfo cellInfo) { super(phone, phone.mCi, cellInfo); mPhone = phone; mCr = phone.getContext().getContentResolver(); mCi.setOnNITZTime(this, EVENT_NITZ_TIME, null); ... ... }
3、RIL.java
RIL在收到上报消息RIL_UNSOL_NITZ_TIME_RECEIVED,后,会调用2中的Handler,发送EVENT_NITZ_TIME的消息。
case RIL_UNSOL_NITZ_TIME_RECEIVED: if (RILJ_LOGD) unsljLogRet(response, ret); // has bonus long containing milliseconds since boot that the NITZ // time was received long nitzReceiveTime = p.readLong(); Object[] result = new Object[2]; result[0] = ret; result[1] = Long.valueOf(nitzReceiveTime); boolean ignoreNitz = SystemProperties.getBoolean( TelephonyProperties.PROPERTY_IGNORE_NITZ, false); if (ignoreNitz) { if (RILJ_LOGD) riljLog("ignoring UNSOL_NITZ_TIME_RECEIVED"); } else { if (mNITZTimeRegistrant != null) { mNITZTimeRegistrant .notifyRegistrant(new AsyncResult (null, result, null)); } // in case NITZ time registrant isn't registered yet, or a new registrant // registers later mLastNITZTimeInfo = result; }
4、CdmaServiceStateTracker.java
case EVENT_NITZ_TIME: ar = (AsyncResult) msg.obj; String nitzString = (String)((Object[])ar.result)[0]; long nitzReceiveTime = ((Long)((Object[])ar.result)[1]).longValue(); setTimeFromNITZString(nitzString, nitzReceiveTime); break;
调用setTimeFromNITZString 去设置时间和时区(偏移值+国家码)。
0 0
- Android 时间更新机制之RIL更新时间
- Android 时间更新机制之网络更新时间
- Android 系统时间更新机制
- Android 时间更新机制研究
- Android系统时间更新机制
- android源码分析之网络更新时间
- Android开发之--实时更新系统时间
- 更新时间
- Android 时间同步与更新
- Android 时间 更新与同步
- android系统时间循环更新
- android系统的更新之比较时间方法的获取时间
- nagios插件之监控文件更新时间
- Linux 内核时钟之进程时间更新
- android wifi网络时间更新-android2.3
- Android 2.3时间 更新与同步
- Android App自动检测更新--时间随机
- Android Timer启动任务更新时间显示
- (引用)LCD驱动移植及测试
- 高德地图JavaScript根据后台坐标点绘制轨迹
- input标签只能输入数字小数点 且小数点后只有两位 ,不允许存在两个小数点!!
- hdu 2196 Computer(树形DP)
- 深拷贝和浅拷贝的区别
- Android 时间更新机制之RIL更新时间
- C# MVC 引用 Ext.Net.Mvc中出现未定义
- JAVA学习代码——验证码生生成步骤
- Nvidia GPU + CoreOS + Docker + TensorFlow = A Fast, Flexible, Deep Learning Platform
- 十分钟黑屏问题
- Ajax方式实现文件上传
- JZOJ8.15(C组)地铁建设
- awk
- hibernate 执行save方法报错