大家在使用Android系统的时候,可能会发现,在不插sim卡仅连wifi的情况下使用自动对时,可能很久都无法对时成功。现在给大家讲解下Android系统的自动对时功能。

在分析引发此问题的原因之前,先来了解下网络对时的两个基本概念:

(1)NITZ:

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

(2)NTP:

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

Android的自动对时功能就是通过使用NITZ者或NTP和服务器进行时间同步,其中NITZ优先于NTP(插入sim卡

时使用NITZ,没插卡仅连wifi时使用NTP),使用这个功能的前提是网络通讯正常,可以正确无误的收发包。那么问

题来了,触发Android自动对时的条件有哪些呢?

Android自动对时触发条件有三个:

(1)EVENT_AUTO_TIME_CHANGED,点击“自动获取时间”选项时

(2)EVENT_POLL_NETWORK_TIME,轮询定时器周期已到的时候

(3)EVENT_NETWORK_CONNECTED, 网络连接成功的时候

第一个触发条件,单次有效,也就是点击的时候才会触发;

第二个触发条件,开机时开始轮询,最多查询三次,如果第一次自动对时失败,则间隔60s再查询第二次,如果连续

三次都自动对时失败,则间隔24小时再做下一次查询;

第三个触发条件,网络连接成功,包括wifi连接和sim卡的运营商网络连接,也是单次有效;

由于Android使用UDP协议发送自动对时的数据包,在网络环境不好或者服务器响应不及时的情况下,很可能造

成获取服务器时间数据包失败,因此造成自动对时失败。刚才上面讲到了,第一种和第三种触发条件是单次响应,第

二种触发条件是开机后连续间隔60s轮询三次。开机后连接wifi,触发条件产生时,在系统向NTP服务器连续发送3次

以上UDP数据包失败后,将不会有新的触发条件产生(除非手动操作,但这样做太费时),因此最终导致自动对时失

败。

现在知道为什么Android系统会概率性的网络对时失败了,那么应该如何规避这个问题呢?

经过跟踪代码流程和大量测试发现,只需要修改一个源文件中的两个变量就可以解决此问题。

~/Framework/base/service/java/com/android/server/NetworkTimeServiceUpdate.java

修改POLLING_INTERVAL_SHORTER_MS和TRY_AGAIN_TIMES_MAX

改成如下数值:

POLLING_INTERVAL_SHORTER_MS = 20 * 1000L

TRY_AGAIN_TIMES_MAX = 300

安卓系统无法自动对时的问题相关推荐

  1. 解决H5项目微信浏览器安卓系统无法自动播放背景音乐的问题

    背景 制作的H5项目,使用vedio标签,利用wx.getNetworkType来自动播放背景音乐. 但是安卓的vedio自动播放被微信浏览器限制了. 解决方案 采用web vedio api 细节解 ...

  2. 谷歌为安卓系统加入Fast Pair技术 蓝牙耳机将实现设备自动切换

    1月6日消息,据国外媒体报道,谷歌计划在接下来的几个月里加入"Fast Pair"蓝牙技术,增强安卓手机的蓝牙耳机功能.安卓系统将能在今年实现像AirPods一样的音频自动切换功能 ...

  3. Android 系统(228)---NITZ网络自动对时功能不起作用

    NITZ网络自动对时功能不起作用 在手机选项中开启了自动更新时间/日期,但是时间日期并没有自动更新 Root Cause 1. 网络不支持NITZ功能 2. NITZ信息在PS域(GPRS/EDGE) ...

  4. layui框架实战案例(6):上传图片和视频自动调用IOS或安卓系统的摄像头功能

    显示效果: 安卓系统上传图片 安卓系统上传视频 苹果IOS IOS系统上传图片 IOS系统上传视频 layui解决代码 上传图片 <button class="layui-btn&qu ...

  5. Android系统自动升级打开,安卓系统怎么升级到Android5.0

    安卓系统怎么升级到Android5.0 很多安卓手机用户在得知Android 5.0系统推出后,都很想将自己的手机系统升级成5.0.但是,目前,Android 5.0只推送了部分手机,其他的安卓用户想 ...

  6. 转: linux下的自动对时

    转自: http://www.cnblogs.com/vimmer/archive/2012/05/17/2505785.html 评注:date 命令格式为: date -s 2012-08-02 ...

  7. android imap开发,企业邮箱在Android(安卓)系统手机上POP3/IMAP协议如何设置

    企业邮箱在Android(安卓)系统手机上POP3/IMAP协议如何设置 我们已经推出了自己研制的手机客户端,具备高兼容性,不需需配置,输入企业邮箱地址和密码直接登录使用.了解详情> 直接扫码下 ...

  8. 台式电脑如何截屏_电脑如何安装安卓系统 台式机装安卓系统教程

    现在的电脑功能越来越全面,操作系统也越来越多.很多朋友想要安装安卓系统,却不知道怎么操作.那么电脑该如何安装安卓系统呢?接下来小编就给大家带来台式机装安卓系统的教程. 具体如下: 一.准备工作 1.下 ...

  9. 安卓系统手机软件_2M不到的安卓神器!有了这五款软件,iphone用户都羡慕

    一直以来,有IOS系统更稳定更流畅的普遍说法.但是,只要你的手机安装了下面这5款软件,安卓系统立马有远超IOS的不凡体验! 一.强力清理 推荐指数:★★★★★ 超简洁的操作界面,集垃圾清理.内存加速. ...

最新文章

  1. 【连载】高效人士的116个IT秘诀(第2版)——秘诀24为你的时间建一个构造图
  2. redis实现分布式锁——核心 setx+pipe watch监控key变化-事务
  3. 从C++中的const到MMU(存储器管理单元)(MMU部分为网页整理)
  4. 发布json数据_数据库每周国际新闻 20201211
  5. Event flow
  6. Qt MQTT安装步骤记录
  7. zabbix入门之监控MySQL
  8. KVC、KVO实现过程
  9. flink中akka的使用 以jobClient提交任务为例子
  10. Git初始化本地已有项目并上传到远端仓库
  11. WORD给文档设置密码保护?
  12. 三维坐标 偏转_三维坐标变换原理-平移, 旋转, 缩放
  13. 局域网通讯工具_五大核心开启工业通讯创新之门——西门子工业网络专家计划打造最强行业生态...
  14. 【开源工程】视频主观质量评测工具 video quality compare tool
  15. kindle刷机ttl_摔一下变砖了,ttl刷机没效果,谁帮看看最后三行那个error什么意...
  16. 如何在Visio中插入公式符号
  17. 共同创业五年,技术总监却突然就这么离职了
  18. 【U3D方向专职猎头】 大厂、高薪职位资源多 非U3D资深勿扰 工作地点北京、深圳、上海、杭州、广州、成都、加微信17512088053
  19. 剖析供应链金融业务发展态势及提升路径
  20. python中fn是什么意思_按Fn键Python 3

热门文章

  1. RTL8762DW特殊管脚和FLASH的分布
  2. sqlmap使用图解
  3. 世界三大统计分析软件sas splus spss
  4. 解题:BZOJ 4808 马
  5. 许多代码段,没准儿有你需要的 C++ Builder
  6. windows文件同步工具
  7. sourceinsight tab 空格 对齐 等宽字体
  8. 国家卫健委5G+医疗健康应用试点项目建议方向全文
  9. MATLAB入门知识
  10. 国产奶粉逆袭的10年:90后奶爸奶妈助力新国货逆袭洋品牌