با شروع اندروید 12، اندروید به صورت اختیاری میتواند از یک منبع زمان خارجی برای پیشنهاد زمانهای یونیکس به سرویس Time Detector استفاده کند. این به طور پیش فرض در AOSP فعال نیست.
مبدا زمان خارجی به شما امکان می دهد پیشنهادات زمان کاملاً سفارشی را به Android ارائه دهید. پس از دریافت پیشنهادات از مبدا زمان خارجی، سرویس time_detector
تعیین میکند که آیا ساعت سیستم را بر اساس قوانین اولویتبندی خودکار پیکربندی شده زمان بهروزرسانی کند یا خیر.
پیاده سازی
برای پشتیبانی از تشخیص زمان خارجی، باید مؤلفهای را پیادهسازی کنید که پیشنهادات زمان خارجی را از طریق فراخوانی API سیستم به سرویس time_detector
ارسال کند.
برای پیکربندی منبع خارجی، از فایل پیکربندی سرور سیستم core/res/res/values/config.xml
استفاده کنید. مقدار external
به config_autoTimeSourcesPriority
اضافه کنید.
مثال زیر به اندروید میگوید هنگام تنظیم ساعت سیستم، به پیشنهادات زمان خارجی بالاترین اولویت را بدهد. اگر پیشنهاد زمانی خارجی معتبری در دسترس نباشد، از مبدأ بعدی، gnss
در این مورد استفاده میشود:
<string-array name="config_autoTimeSourcesPriority">
<item>external</item>
<item>gnss</item>
</string-array>
برای ارائه یک پیشنهاد زمان خارجی به سیستم، از روش suggestExternalTime
در TimeManager
استفاده کنید. اگر مبدا خارجی با استفاده از config_autoTimeSourcesPriority
در فایل پیکربندی پیکربندی شده باشد و هیچ پیشنهاد زمانی با اولویت بالاتر در دسترس نباشد، Android از مهر زمانی ارسال شده به این روش برای تنظیم زمان فعلی یونیکس استفاده میکند.