最近项目中遇到一个很奇怪的问题,根据LOG分析了好久终于确定了原因。
现在大部分的智能电视都是用的Android 4.4的源码进行开发的,但是Android4.4中还是存在很多坑的,需要我们去一步步的填。
BUG:Android4.4 连接上有线网络,自动更新网络时间设置为关后,断电开机重启后还是会先同步为网络时间。
一、拿到问题一开始有点不知所措,后面先了解了下Android网络更新时间的机制如下:
1、自动更新时间监听服务 frameworks\base\services\java\com\android\server\NetworkTimeUpdateService.java
该服务注册了一系列的监听,Settings.Global.AUTO_TIME的值的改变、网络状态的改变、NITZ状态的改变,当检测到变化的话就会去通过 NtpTrustedTime.forceRefresh() 去更新当前的网络时间。
/** Initialize the receivers and initiate the first NTP request */
public void systemRunning() {
registerForTelephonyIntents(); // NITZ Receiver