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

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