這項功能可讓合作夥伴選擇時間同步方式,不論是從 Android Automotive 作業系統 (AAOS) 或從車輛系統到 Android。為確保導入品質,您可以將 AAOS 設為使用下方兩個新 VHAL 屬性中的其中一個,有效地傳播值。您可以使用下列功能:
ANDROID_EPOCH_TIME
使用 Android 做為時間的可靠資料來源。VHAL 支援這項只讀屬性,可將時間變更從 Android 傳送至其他車輛系統,例如電子控制單元 (ECU) 和車身控制模組 (BCM)。EXTERNAL_CAR_TIME
不使用 Android 做為時間的真相來源。在這種情況下,VHAL 支援唯讀EXTERNAL_CAR_TIME
屬性,可將其他車輛系統 (例如 ECU 和 BCM) 的時間變更傳送至 Android。
AAOS 也提供可設定的 TimeDetectorStrategy
,協助您為 Android 中的不同時間來源排定優先順序。
Android 是時間的可靠來源
使用 Android 做為時間來源時,原始設備製造商 (OEM) 可以將其他車輛系統 (包括 ECU 和 BCM) 與 Android 時間同步。
為此,VHAL 實作必須支援只寫屬性 ANDROID_EPOCH_TIME
。Android 會在啟動時和 Android 中的時間來源變更時,透過讀取系統時間來發布屬性更新。
Android 並非時間的可靠來源
如果 Android 不是時間來源,您可以將 Android 時間同步處理,做為可靠的時間來源 (例如使用 ECU 或 BCM)。在這種情況下,VHAL 實作項目必須支援唯讀屬性 EXTERNAL_CAR_TIME
,並在時間來源變更或重新校正時,發布此屬性的更新。
原始設備製造商也必須確保:
config_autoTimeSourcesPriority
值包含在core/res/res/values/config.xml
中。- CarServices 重疊設定
packages/services/Car/service/res/values/config.xml
中的config_enableExternalCarTimeToExternalTimeSuggestion
屬性已設為true
。 external
時間在TimeDetectorStrategy
設定中具有適當的優先順序。詳情請參閱「GNSS 時間偵測」。例如:<!-- Specifies priority of automatic time sources. Suggestions from higher entries in the list take precedence over lower ones. See com.android.server.timedetector.TimeDetectorStrategy for available sources. --> <string-array name="config_autoTimeSourcesPriority"> <item>external</item> <item>gnss</item> <item>network</item> <item>telephony</item> </string-array>
Android 內部實作詳細資料
支援 ANDROID_EPOCH_TIME
VHAL 屬性時,會執行以下流程:
TimeHalService
(在 CarServices 中) 會收到 Android 系統針對Intent.ACTION_TIME_CHANGED
發出的廣播。TimeHalService
會發布 VHAL 資源ANDROID_EPOCH_TIME
的更新內容。- VHAL 可將收到的時間值傳播至各種 ECU 和/或 BCM 單元。
支援 EXTERNAL_CAR_TIME
VHAL 屬性時,會執行以下流程:
- VHAL 會更新
EXTERNAL_CAR_TIME
屬性。 TimeHalService
(在 CarServices 中) 會透過訂閱讀取屬性。TimeHalService
會建立並傳送ExternalTimeSuggestion
至TimeManager
。TimeManager
將建議轉寄至TimeDetectorService
。TimeDetectorService
會使用TimeDetectorStrategy
選擇新的系統時間。