החל מ-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) הנוכחי.