Android设备是否使用网络时间协议(NTP)来同步时间?
在我的设备设置中,我看到一个带有以下文本“与网络同步”的复选框,但我不知道他们是否正在使用NTP。
我需要这个用于我使用GPS的学士论文。为了获得准确的GPS信号,接收器应具有精确的时钟。
我在网上发现了这个博客条目,但我不确定他是否说实话:Speeding up NTP, GPS Lock in Android
答案 0 :(得分:45)
我知道Android ICS使用名为NetworkTimeUpdateService
的自定义服务。此服务还通过NtpTrustedTime
单例实现NTP时间同步。
在NtpTrustedTime
中,从Android系统字符串源请求默认的NTP服务器:
final Resources res = context.getResources();
final String defaultServer = res.getString(
com.android.internal.R.string.config_ntpServer);
如果系统设置中的自动时间同步选项被选中且没有可用的NITZ时间服务,则时间将与来自com.android.internal.R.string.config_ntpServer
的NTP服务器同步。
要获取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);
答案 1 :(得分:11)
我想询问Android设备是否使用网络时间协议(ntp)来同步时间。
对于一般时间同步,具有电话功能的设备(无线提供商提供NITZ information)将使用NITZ。我的理解是NTP在其他情况下使用:NITZ无线提供商,仅限WiFi等等。
您引用的博客文章提出了另一种情况:支持GPS的按需时间同步。这当然是可以想象的,虽然我不知道它是否被使用。
答案 2 :(得分:10)
我有一台带有Android 4.1.1的三星Galaxy Tab 2 7.0。显然它不会同步到ntp。我加载了一个应用程序,说我的平板电脑与ntp相差20秒,但除非我将设备设置为root,否则无法设置它。
答案 3 :(得分:5)
不是您问题的准确答案,而是一些信息:如果您的设备 使用NTP时间(例如,如果它是没有3G或GPS功能的平板电脑),服务器可以在/system/etc/gps.conf
中配置 - 显然此文件只能使用root访问权限进行编辑,但可以在非root设备上查看。