外部時間偵測

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