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