זיהוי זמן חיצוני

החל מ-Android 12, אפשר להשתמש ב-Android כמקור זמן חיצוני כדי להציע לשירות time_detector זמנים לפי ראשית זמן יוניקס (Unix epoch). התכונה הזו לא מופעלת כברירת מחדל ב-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 הנוכחי.