קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
התכונה הזו מאפשרת לשותפים לבחור איך לסנכרן את השעון, בין אם ממערכת ההפעלה של 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 בהגדרות השכבה העליונה של CarServices packages/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.
ה-VHAL יכול להעביר את ערך הזמן שהתקבל ליחידות ECU ו/או BCM שונות.
התהליך הבא מתרחש כשיש תמיכה במאפיין VHAL EXTERNAL_CAR_TIME:
VHAL מעדכן את המאפיין EXTERNAL_CAR_TIME.
TimeHalService (ב-CarServices) קורא את הנכס דרך מינוי.
TimeHalService יוצר ושולח ExternalTimeSuggestion אל TimeManager.
TimeManager מעביר את ההצעה אל TimeDetectorService.
TimeDetectorService משתמש ב-TimeDetectorStrategy כדי לבחור שעה חדשה למערכת.
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-07-27 (שעון UTC)."],[],[],null,["# Configure AAOS time sources\n\nThis feature enables partners to choose how to synchronize time, whether from the Android\nAutomotive Operating System (AAOS) **or** from vehicular systems to Android.\nTo ensure quality implementations, you can configure AAOS to use one of the two new VHAL properties\ndescribed below to propagate the values effectively. Use:\n\n- `ANDROID_EPOCH_TIME` to **use** Android as the source of truth for time. The VHAL supports this *write-only* property, which communicates time changes from Android to other vehicular systems, such as the Electronic Control Units (ECU) and the Body Control Module (BCM).\n- `EXTERNAL_CAR_TIME` to **not use** Android as the source of truth for time. In this case, the VHAL supports the *read-only* `EXTERNAL_CAR_TIME` property, which communicates time changes from other vehicular systems (such as ECUs and BCM) to Android.\n\n| **Warning:** If you opt to support both properties (not recommended), the VHAL must **never** publish values to `EXTERNAL_CAR_TIME` that are dependent on `ANDROID_EPOCH_TIME`.\n\nAAOS also provides a configurable `TimeDetectorStrategy` to help you prioritize\ndifferent time sources within Android.\n\n### Android is the source of truth for time\n\nWhen Android is used as the source of time, OEMs can synchronize other car systems (including\nECUs and a BCM) with Android time.\n\nTo do so, the VHAL implementation must support the *write-only* property\n`ANDROID_EPOCH_TIME` property. Android publishes an update to the property by reading\nsystem time, both at boot time and whenever the time source in Android is changed.\n\n### Android is not the source of truth for time\n\nWhen Android is **not** used as the source of time, you can synchronize Android time\nto be the source of truth for time (for example, with an ECU or the BCM). In this case, the\nVHAL implementation must support the read-only property `EXTERNAL_CAR_TIME` and publish\nupdates to this property whenever the source of time changes or recalibrates the clock.\n\nOEMs must also ensure that:\n\n- The `config_autoTimeSourcesPriority` values are contained in `core/res/res/values/config.xml`.\n- The `config_enableExternalCarTimeToExternalTimeSuggestion` property in the CarServices overlay configs `packages/services/Car/service/res/values/config.xml` is set to `true`.\n- `external` time has the appropriate priority in the `TimeDetectorStrategy` configuration. To learn more, see [GNSS Time Detection](/devices/tech/connect/time/gnss-time-detection#implement). For example: \n\n ```scdoc\n \u003c!-- Specifies priority of automatic time sources. Suggestions from higher entries in the list take precedence over lower ones.\n See com.android.server.timedetector.TimeDetectorStrategy for available sources. --\u003e\n \u003cstring-array name=\"config_autoTimeSourcesPriority\"\u003e\n \u003citem\u003eexternal\u003c/item\u003e\n \u003citem\u003egnss\u003c/item\u003e\n \u003citem\u003enetwork\u003c/item\u003e\n \u003citem\u003etelephony\u003c/item\u003e\n \u003c/string-array\u003e\n ```\n\n| The VHAL implementation must **not** publish updates for the natural progression of time.\n\nAndroid internal implementation details\n---------------------------------------\n\nThe following flow takes place when the `ANDROID_EPOCH_TIME` VHAL property is\nsupported:\n\n1. `TimeHalService` (in CarServices) receives a broadcast from the Android system for `Intent.ACTION_TIME_CHANGED`.\n2. `TimeHalService` publishes an update to the VHAL Property `ANDROID_EPOCH_TIME`.\n3. The VHAL can propagate the time value received to various ECUs and/or BCM units.\n\nThe following flow takes place when the `EXTERNAL_CAR_TIME` VHAL property is\nsupported:\n\n1. VHAL updates the `EXTERNAL_CAR_TIME` property.\n2. `TimeHalService` (in CarServices) reads the property through a subscription.\n3. `TimeHalService` creates and sends an `ExternalTimeSuggestion` to `TimeManager`.\n4. `TimeManager` forwards the suggestion to `TimeDetectorService`.\n5. `TimeDetectorService` uses `TimeDetectorStrategy` to choose a new system time."]]