התכונה הזו מאפשרת לשותפים לבחור איך לסנכרן את השעון, בין אם ממערכת ההפעלה של Android Automotive (AAOS) או ממערכות הרכב ל-Android. כדי להבטיח הטמעות איכותיות, אפשר להגדיר את AAOS כך שישתמש באחד משני מאפייני VHAL החדשים שמתוארים בהמשך כדי להפיץ את הערכים בצורה יעילה. השתמש ב:
ANDROID_EPOCH_TIMEכדי להשתמש ב-Android כמקור המידע האמין לגבי זמן. VHAL תומך בנכס לכתיבה בלבד הזה, שמעביר שינויים בזמן מ-Android למערכות רכב אחרות, כמו יחידות הבקרה האלקטרוניות (ECU) ומודול הבקרה של המרכב (BCM).EXTERNAL_CAR_TIMEכדי לא להשתמש ב-Android כמקור המידע האמין של הזמן. במקרה כזה, VHAL תומך בנכסEXTERNAL_CAR_TIMEלקריאה בלבד, שמעביר ל-Android שינויים בזמן ממערכות רכב אחרות (כמו ECU ו-BCM).
ב-AAOS יש גם את TimeDetectorStrategy, שאפשר להגדיר אותו כדי לתת עדיפות למקורות זמן שונים ב-Android.
Android הוא המקור האמין לנתוני הזמן
כשמשתמשים ב-Android כמקור הזמן, יצרני ציוד מקורי יכולים לסנכרן מערכות אחרות ברכב (כולל יחידות בקרה אלקטרוניות ו-BCM) עם הזמן ב-Android.
לשם כך, ההטמעה של VHAL חייבת לתמוך בנכס ANDROID_EPOCH_TIME לכתיבה בלבד. מערכת Android מפרסמת עדכון לנכס על ידי קריאת שעון המערכת, גם בזמן האתחול וגם בכל פעם שמקור הזמן ב-Android משתנה.
Android הוא לא מקור האמת לגבי הזמן
כש-Android לא משמש כמקור הזמן, אפשר לסנכרן את הזמן ב-Android כדי שיהיה מקור האמת לזמן (לדוגמה, באמצעות ECU או BCM). במקרה כזה, הטמעת VHAL חייבת לתמוך בנכס EXTERNAL_CAR_TIME לקריאה בלבד ולפרסם עדכונים בנכס הזה בכל פעם שמקור הזמן משתנה או שהשעון מכוונן מחדש.
יצרני ציוד מקורי (OEM) צריכים גם לוודא את הפרטים הבאים:
- הערכים של
config_autoTimeSourcesPriorityנכללים ב-core/res/res/values/config.xml. - המאפיין
config_enableExternalCarTimeToExternalTimeSuggestionבהגדרות השכבה העליונה של CarServicespackages/services/Car/service/res/values/config.xmlמוגדר לערך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
התהליך הבא מתרחש כשיש תמיכה במאפיין VHAL ANDROID_EPOCH_TIME:
TimeHalService(ב-CarServices) מקבל שידור ממערכת Android עבורIntent.ACTION_TIME_CHANGED.TimeHalServiceמפרסם עדכון לנכס VHALANDROID_EPOCH_TIME.- ה-VHAL יכול להעביר את ערך הזמן שהתקבל ליחידות ECU ו/או BCM שונות.
התהליך הבא מתרחש כשיש תמיכה במאפיין VHAL EXTERNAL_CAR_TIME:
- VHAL מעדכן את המאפיין
EXTERNAL_CAR_TIME. TimeHalService(ב-CarServices) קורא את הנכס דרך מינוי.TimeHalServiceיוצר ושולחExternalTimeSuggestionאלTimeManager.TimeManagerמעביר את ההצעה אלTimeDetectorService.TimeDetectorServiceמשתמש ב-TimeDetectorStrategyכדי לבחור שעה חדשה למערכת.