外部時間偵測

從 Android 12 開始,Android 可選擇性使用外部時間來源,向 time_detector 服務建議 Unix 紀元時間。這項功能在 Android 開放原始碼計畫 (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 時間。