Android使用NTP来同步时间吗?

iTa*_*amp 58 time gps android ntp

Android设备是否使用网络时间协议(NTP)来同步时间?

在我的设备设置中,我看到一个带有以下文本"与网络同步"的复选框,但我不知道他们是否正在使用NTP.

我需要这个用于我使用GPS的学士论文.为了获得准确的GPS信号,接收器应具有精确的时钟.

我在网上找到了这个博客条目,但我不确定他是否说实话:加速NTP,Android中的GPS锁定

Dyo*_*sos 47

我知道Android ICS使用的是一个名为的自定义服务:NetworkTimeUpdateService.该服务还通过NtpTrustedTime单例实现NTP时间同步.

NtpTrustedTime默认的NTP服务器中,从Android系统字符串源请求:

final Resources res = context.getResources();

final String defaultServer = res.getString(
                                com.android.internal.R.string.config_ntpServer);
Run Code Online (Sandbox Code Playgroud)

如果检查系统设置中的自动时间同步选项且没有可用的NITZ时间服务,则时间将与NTP服务器同步com.android.internal.R.string.config_ntpServer.

要获得com.android.internal.R.string.config_ntpServer您的值,可以使用以下方法:

    final Resources res = this.getResources();
    final int id = Resources.getSystem().getIdentifier(
                       "config_ntpServer", "string","android");
    final String defaultServer = res.getString(id);
Run Code Online (Sandbox Code Playgroud)

  • 有趣的是,看起来他们已经将它硬编码为**2.android.pool.ntp.org**.820行:https://android.googlesource.com/platform/frameworks/base/+/40caf8f4432acd2b9d9230b2b1371660521415c2/core/res/res/values/config.xml#802 (14认同)
  • 注意:1)如果要更改ntp服务器,Android只会在启动时查看config_ntpServer值,因此您需要重新启动(或重新启动NetworkTimeUpdateService)才能使用新值.2)自2012年起,Android仅在启动后每10天检查一次.(gerrit中有一个补丁可以恢复1天的原始超时)3)让Android检查时间的一个技巧是关闭Settings.Global.AUTO_TIME然后重新打开.这相当于Settings.app的"日期和时间"部分中的复选框.4)Android不使用NTP,它很少使用SNTP进行轮询. (8认同)
  • 是的,但这只适用于股票机器人.一些制造商更改服务器字符串. (3认同)
  • 所以当你说:"1)如果你想改变ntp服务器,Android只在启动时查看config_ntpServer值,所以你需要重新启动(或重启NetworkTimeUpdateService)才能使用新值",我该怎么办?能改变价值吗? (3认同)

Com*_*are 11

我想询问Android设备是否使用网络时间协议(ntp)来同步时间.

对于一般时间同步,具有电话功能的设备(无线提供商提供NITZ信息)将使用NITZ.我的理解是在其他情况下使用NTP:NITZ无线提供商,仅限WiFi等.

您引用的博客文章提出了另一种情况:支持GPS的按需时间同步.这当然是可以想象的,虽然我不知道它是否被使用.


Mis*_*hka 10

我有一个三星Galaxy Tab 2 7.0与Android 4.1.1.显然它不会同步到ntp.我加载了一个应用程序,说我的平板电脑离ntp有20秒,但是除非我根设备,否则无法设置它.


tor*_*yan 7

不是您的问题的确切答案,而是一些信息:如果您的设备确实使用NTP时间(例如,如果它是没有3G或GPS功能的平板电脑),则可以配置服务器/system/etc/gps.conf- 显然此文件只能可以使用root访问权限进行编辑,但可以在非root设备上查看.