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

החל מ-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>

כדי לספק למערכת הצעת זמן חיצונית, משתמשים suggestExternalTime() ב-TimeManager. אם המקור החיצוני מוגדר באמצעות config_autoTimeSourcesPriority בקובץ התצורה ולא רמה גבוהה יותר הצעות לזמן בעדיפות גבוהה, מערכת Android משתמשת חותמת זמן שמועברת לשיטה הזו כדי להגדיר את זמן ההתחלה של יוניקס (Unix epoch) הנוכחי.