【发布时间】:2013-01-01 02:32:13
【问题描述】:
Android 设备是否使用网络时间协议 (NTP) 来同步时间?
在我的设备设置中,我看到一个带有以下文本“与网络同步”的复选框,但我不知道他们是否使用 NTP。
我在使用 GPS 的学士论文中需要这个。为了获得准确的 GPS 信号,接收器应该有一个准确的时钟。
我在网上找到了这个博客条目,但我不确定他说的是不是真的:Speeding up NTP, GPS Lock in Android
【问题讨论】:
Android 设备是否使用网络时间协议 (NTP) 来同步时间?
在我的设备设置中,我看到一个带有以下文本“与网络同步”的复选框,但我不知道他们是否使用 NTP。
我在使用 GPS 的学士论文中需要这个。为了获得准确的 GPS 信号,接收器应该有一个准确的时钟。
我在网上找到了这个博客条目,但我不确定他说的是不是真的:Speeding up NTP, GPS Lock in Android
【问题讨论】:
我知道 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);
如果系统设置中的自动时间同步选项被选中并且没有 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);
【讨论】:
我想问一下Android设备是否使用网络时间协议(ntp)来同步时间。
对于一般时间同步,无线提供商提供NITZ information 的具有电话功能的设备将使用 NITZ。我的理解是 NTP 用于其他情况:无 NITZ 的无线提供商、仅 WiFi 等。
您引用的博客文章暗示了另一种情况:支持 GPS 的按需时间同步。这当然是可以想象的,虽然不知道有没有用。
【讨论】:
我有一台装有 Android 4.1.1 的三星 Galaxy Tab 2 7.0。显然它不会同步到 ntp。我加载了一个应用程序,它说我的平板电脑与 ntp 相差 20 秒,但它无法设置它,除非我根设备。
【讨论】:
不是对您问题的确切答案,而是一些信息:如果您的设备确实使用 NTP 时间(例如,如果它是没有 3G 或 GPS 功能的平板电脑),则服务器可以在/system/etc/gps.conf 中进行配置 - 显然这个文件只能使用 root 权限编辑,但在非 root 设备上可以查看。
【讨论】:
您可以使用全局变量NTP_SERVER、属性ro.NTP_SERVER 或通过在/etc 下创建一个名为ntp.conf 的文件来覆盖ntp,如下所述:
https://developers.google.com/time/guides#linux_ntpd_or_chrony
Linux 说明适用于 Android。
您始终可以通过代理将来自您设备的流量重定向到在同一网络上的另一台计算机上运行的 burp 数据包侦听器,以轻松检查所有流量。无论 NTP 设置如何,您设备中的 SIM 卡都会同步,默认情况下,您的路由器也可以充当网络的 NTP 服务器。
【讨论】: