تشخیص زمان خارجی

از Android 12،‏ Android می‌تواند به‌صورت اختیاری از منبع خارجی زمان برای پیشنهاد دادن زمان‌های مبدأ Unix به سرویس تشخیص زمان استفاده کند. این ویژگی به‌طور پیش‌فرض در AOSP فعال نیست.

منشأ زمان خارجی به شما امکان می‌دهد پیشنهادهای زمان کاملاً سفارشی به Android ارائه دهید. پس‌از دریافت پیشنهاد از منبع زمان خارجی، سرویس time_detector براساس قوانین اولویت‌بندی زمان خودکار پیکربندی‌شده تعیین می‌کند که ساعت سیستم به‌روز شود یا نه.

پیاده‌سازی

برای پشتیبانی از تشخیص زمان خارجی، باید مؤلفه‌ای را پیاده‌سازی کنید که ازطریق فراخوانی میانای برنامه‌سازی کاربردی سیستم، پیشنهادهای زمان خارجی را به سرویس time_detector ارسال می‌کند.

برای پیکربندی مبدأ خارجی، از 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 از مُهر زمان ارسال‌شده به این روش برای تنظیم زمان کنونی عصر یونیکس استفاده می‌کند.