החל מ-27 במרץ 2025, מומלץ להשתמש ב-android-latest-release
במקום ב-aosp-main
כדי ליצור תרומות ל-AOSP. מידע נוסף זמין במאמר שינויים ב-AOSP.
זיהוי זמן חיצוני
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
החל מ-Android 12, מערכת Android יכולה להשתמש באופן אופציונלי במקור זמן חיצוני כדי להציע זמנים של ראשית זמן יוניקס (Unix epoch) לשירות time_detector
.
האפשרות הזו לא מופעלת כברירת מחדל ב-AOSP.
מקור הזמן החיצוני מאפשר ליצרני מכשירים לספק ל-Android הצעות זמן מותאמות אישית לחלוטין. אחרי קבלת ההצעות ממקור הזמן החיצוני, שירות time_detector
קובע אם לעדכן את שעון המערכת באמצעות כללי התעדוף שהוגדרו.
הטמעה
כדי לתמוך בזיהוי זמן חיצוני, יצרני מכשירים צריכים להטמיע רכיב ששולח הצעות לזמן חיצוני לשירות time_detector
באמצעות קריאה למערכת API.
כדי להגדיר את המקור החיצוני, משתמשים בקובץ התצורה של שרת המערכת core/res/res/values/config.xml
. מוסיפים את הערך external
אל config_autoTimeSourcesPriority
.
בדוגמה הבאה, מערכת Android מקבלת הוראה לתת הצעות חיצוניות לגבי השעה את העדיפות הגבוהה ביותר כשמגדירים את השעון של המערכת. אם אין הצעה תקפה לזמן חיצוני, המערכת משתמשת במקור הבא, gnss
במקרה הזה.
<string-array name="config_autoTimeSourcesPriority">
<item>external</item>
<item>gnss</item>
</string-array>
כדי לספק למערכת הצעה לזמן חיצוני, משתמשים ב-method suggestExternalTime()
ב-TimeManager
. אם המקור החיצוני מוגדר באמצעות config_autoTimeSourcesPriority
בקובץ ההגדרות ולא זמינות הצעות זמן בעדיפות גבוהה יותר, מערכת Android משתמשת בחותמת הזמן שמועברת לשיטה הזו כדי להגדיר את הזמן הנוכחי של ראשית זמן UNIX.
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-08-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-08-27 (שעון UTC)."],[],[],null,["From Android 12, Android can optionally use an external\nsource of time to suggest Unix epoch times to the [`time_detector`](/docs/core/connect/time#time_detector-service) service.\nThis isn't enabled by default in AOSP.\n\nThe *external* time origin allows device manufacturers to provide completely\ncustom time suggestions to Android. After receiving suggestions from the\nexternal time origin, the `time_detector` service determines whether to update\nthe system clock using the configured [prioritization rules](/docs/core/connect/time#automatic-time).\n\nImplementation\n\nTo support external time detection, device manufacturers must implement a\ncomponent that submits external time suggestions to the `time_detector` service\nthrough a system API call.\n\nTo configure the external origin, use the `core/res/res/values/config.xml`\nsystem server configuration file. Add the value `external` to\n`config_autoTimeSourcesPriority`.\n\nThe following example tells Android to give external time suggestions the\nhighest priority when setting the system clock. If there is no valid external\ntime suggestion available then the next origin, `gnss` in this case, is used. \n\n \u003cstring-array name=\"config_autoTimeSourcesPriority\"\u003e\n \u003citem\u003eexternal\u003c/item\u003e\n \u003citem\u003egnss\u003c/item\u003e\n \u003c/string-array\u003e\n\nTo provide the system with an external time suggestion, use the\n[`suggestExternalTime()`](https://cs.android.com/android/platform/superproject/+/android-latest-release:frameworks/base/core/java/android/app/time/TimeManager.java?q=%22void%20suggestExternalTime%22) method in `TimeManager`. If the external origin is\nconfigured using `config_autoTimeSourcesPriority` in the configuration file and\nno higher priority time suggestions are available, Android uses the timestamp\npassed to this method to set the current Unix epoch time."]]