外部時間檢測

從 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 紀元時間。