以前看过网上有文章分析Android系统的网络时间同步基本上是不靠谱的,原因如下:

  1. Android的时间同步用的不是基于互联网服务的NTP,而是基于运营商提供的可选服务NITZ。而天朝这种以收费高、服务少闻名的运营商基本上是不会支持的。
  2. 就算运营商提供NITZ,Android也是只有在系统启动时才会时间同步。而日常使用时很少重启手机的,时间一长依然不准确。

因此,以前还专门下一个ClockSync的软件不时同步一下。不过这个软件需要root权限,要实现自动同步的话还得有一个进程常驻后台。最近换新手机后,发现用了一段时间后它的时间还是准确的,便感觉Android现在是支持通过互联网进行网络时间同步的(不大可能是由于天朝运营商突然开恩支持NITZ)。

由于我对Android系统不熟悉,无法像那篇文章的作者那样通过内核代码分析,便手动验证了一下我的猜测。

我的最初设计的验证步骤如下:

  1. 拔掉SIM卡、关闭WiFi、关闭使用网络时间同步
  2. 手动修改系统时间,将时间提前一小时
  3. 开启网络时间同步
  4. 开启Wifi,查看时间是否能恢复

另我诧异的是,当进行到步骤3的时候,时间就已经恢复了。由于我拔掉了sim卡,也关闭了wifi,这个时候是没有任何从外部获取标准时间的手段的。因此我估计系统内部即使去掉了网络时间同步,仍然记录着该网络时间的,在恢复网络时间同步设置时先以该时间作为参考恢复到了正确的时间。

由于步骤3恢复了时间导致我的验证无法进行下去,因此我修改了测试步骤,在开启网络时间同步前加了一个重启的操作重置一下系统。

  1. 拔掉SIM卡、关闭WiFi、关闭使用网络时间同步
  2. 手动修改系统时间,将时间提前一小时
  3. 重启手机
  4. 开启网络时间同步
  5. 开启Wifi,查看时间是否能恢复

由于有一个重启的操作,开启网络时间同步后,系统仍然维持着错误的时间(这个也能印证我前面的猜想)。接着进行步骤5,开启Wifi后,系统马上自动恢复到了正确的时间

由于此时我的sim卡仍然维持在拔掉的状态。因此,可以证明Android ICS是可以从互联网同步时间的。并且这个同步不是只在系统启动的时候才做的,至少在wifi开启的时候是会同步时间的。因此可以说,在ICS系统及以上版本的系统中,网络时间同步功能是可以用的,只要有可用的互联网连接,不用ClockSync等第三方同步软件也能自动维持准确的时间。

更多相关文章

  1. Android系统Recovery工作原理之使用update.zip
  2. Android实现长时间等待界面
  3. android系统添加service与android层次分析
  4. Windows平板装Android双系统及建立UEFI引导全攻略(windows8.1+and
  5. Android webview 实现h5中调用原生系统相册/相机并进行图片压缩
  6. Android的通信机制与网络(二)
  7. 游走Android系列之网络通信

随机推荐

  1. android 图片缩放
  2. android studio 取消自动保存功能(已解决)
  3. Android(安卓)加密解密
  4. android中动态布局(动态加入TextView和Li
  5. android网变化广播接收
  6. Android系统时间显示上下午
  7. android 弹出带输入框的对话框
  8. android 多点触摸实现图片缩放
  9. android 自动完成 AutoCompleteTextView
  10. LinearLayout 布局 底部固定导航