Deteksi waktu eksternal

Mulai Android 12, Android dapat secara opsional menggunakan sumber waktu eksternal untuk menyarankan waktu epoch Unix ke layanan Time Detector. Fitur ini tidak diaktifkan secara default di AOSP.

Asal waktu eksternal memungkinkan Anda memberikan saran waktu yang sepenuhnya kustom ke Android. Setelah menerima saran dari sumber waktu eksternal, layanan time_detector akan menentukan apakah akan memperbarui jam sistem berdasarkan aturan prioritas waktu otomatis yang dikonfigurasi.

Implementasi

Untuk mendukung deteksi waktu eksternal, Anda harus mengimplementasikan komponen yang mengirimkan saran waktu eksternal ke layanan time_detector melalui panggilan API sistem.

Untuk mengonfigurasi origin eksternal, gunakan file konfigurasi server sistem core/res/res/values/config.xml. Tambahkan nilai external ke config_autoTimeSourcesPriority.

Contoh berikut memberi tahu Android untuk memberikan prioritas tertinggi pada saran waktu eksternal saat menyetel jam sistem. Jika tidak ada saran waktu eksternal yang valid, asal berikutnya, dalam hal ini gnss, akan digunakan:

<string-array name="config_autoTimeSourcesPriority">
        <item>external</item>
        <item>gnss</item>
</string-array>

Untuk memberikan saran waktu eksternal kepada sistem, gunakan metode suggestExternalTime di TimeManager. Jika asal eksternal dikonfigurasi menggunakan config_autoTimeSourcesPriority dalam file konfigurasi dan tidak ada saran waktu dengan prioritas yang lebih tinggi, Android akan menggunakan stempel waktu yang diteruskan ke metode ini untuk menyetel waktu epoch Unix saat ini.