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