外部时间检测

从 Android 12 开始,Android 可以选择使用外部时间源向time_detector服务建议 Unix 纪元时间。这在 AOSP 中默认不启用。

外部时间来源允许设备制造商向 Android 提供完全自定义的时间建议。在收到来自外部时间源的建议后, time_detector服务会根据配置的优先级规则确定是否更新系统时钟。

执行

为了支持外部时间检测,设备制造商必须实现一个组件,通过系统 API 调用向time_detector服务提交外部时间建议。

要配置外部源,请使用core/res/res/values/config.xml系统服务器配置文件。将值添加到config_autoTimeSourcesPriority external

以下示例告诉 Android 在设置系统时钟时给予外部时间建议最高优先级。如果没有可用的有效外部时间建议,则使用下一个来源,在这种情况下为gnss

<string-array name="config_autoTimeSourcesPriority">
        <item>external</item>
        <item>gnss</item>
</string-array>

要为系统提供外部时间建议,请使用 TimeManager 中的TimeManager suggestExternalTime()方法。如果外部源是使用配置文件中的config_autoTimeSourcesPriority配置的,并且没有更高优先级的时间建议可用,Android 将使用传递给此方法的时间戳来设置当前的 Unix 纪元时间。