Android论坛
直播中

叶长德

11年用户 59经验值
擅长:控制/MCU
私信 关注
[经验]

为什么勾选“自动更新时间”后时间没有更新

本帖最后由 ycd37850105 于 2016-9-18 21:28 编辑

      有时候我们会发现,手机能够正常上网,而且已勾选“自动获取网络时间”,可是等待十几分钟甚至几个小时都没有发现时间更新。这里说明一下Android手机是如何自动更新时间的。
      手机获取网络时间用到NTP服务,NTP是网络时间协议(Network time Protocol),它是用来同步网络中各个设备的时间的协议。NTP更新时间的时间点有:开机,auto date/time setting打开,网络连接,开机后每隔24小时同步一次网络时间。
      当开机的时候,如果NTP无法通过mobile data connecttion上网,拿到正确的时间,这时候NTP会每隔60秒后进行一次retry,最大retry三次,如果三次都不行,则需要等用户更新auto date/time setting或重新连接网络或等待24小时之后,系统才会尝试去更新时间。

在NetworkTimeUpdateService.java文件中,我们可以设置一些关于时间更新的参数。
   /** Normal polling frequency */
    private static final long POLLING_INTERVAL_MS = 24L * 60 * 60 * 1000; // 24 hrs
    /** Try-again polling interval, in case the network request failed */
    private static final long POLLING_INTERVAL_SHORTER_MS = 60 * 1000L; // 60 seconds
    /** Number of times to try again */
    private static final int TRY_AGAIN_TIMES_MAX = 3;
时间更新需要的event:        private static final int EVENT_AUTO_TIME_CHANGED = 1;
    private static final int EVENT_POLL_NETWORK_TIME = 2;
    private static final int EVENT_NETWORK_CONNECTED = 3;
    private static final int EVENT_GPS_TIME_SYNC_CHANGED = 4;





更多回帖

发帖
×
20
完善资料,
赚取积分