外部時間偵測

自 Android 12 起,Android 可選擇使用外部時間來源,為 time_detector 服務建議 Unix 紀元時間。這項功能在 AOSP 中預設為停用。

外部時間來源可讓裝置製造商向 Android 提供完全自訂的時間建議。收到外部時間來源的建議後,time_detector 服務會判斷是否要使用已設定的優先順序規則更新系統時鐘。

實作

如要支援外部時間偵測,裝置製造商必須實作元件,透過系統 API 呼叫將外部時間建議提交至 time_detector 服務。

如要設定外部來源,請使用 core/res/res/values/config.xml 系統伺服器設定檔。將 external 值新增至 config_autoTimeSourcesPriority

下列範例會指示 Android 在設定系統時鐘時,給予外部時間建議的最高優先順序。如果沒有有效的外部時間建議,則會使用下一個來源 (在本例中為 gnss)。

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

如要向系統提供外部時間建議,請在 TimeManager 中使用 suggestExternalTime() 方法。如果外部來源是使用設定檔中的 config_autoTimeSourcesPriority 進行設定,且沒有更高優先順序的時間建議,Android 會使用傳遞至此方法的時間戳記,設定目前的 Unix 紀元時間。