Deteksi waktu eksternal

Mulai Android 12, Android secara opsional dapat 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 produsen perangkat memberikan sugesti waktu yang sepenuhnya kustom ke Android. Setelah menerima saran dari asal waktu eksternal, layanan time_detector akan menentukan apakah akan mengupdate jam sistem menggunakan aturan prioritas yang dikonfigurasi.

Implementasi

Untuk mendukung deteksi waktu eksternal, produsen perangkat harus menerapkan 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 ke sistem, gunakan metode suggestExternalTime() di TimeManager. Jika origin eksternal dikonfigurasi menggunakan config_autoTimeSourcesPriority dalam file konfigurasi dan tidak ada sugesti waktu prioritas yang lebih tinggi, Android akan menggunakan stempel waktu yang diteruskan ke metode ini untuk menetapkan waktu epoch Unix saat ini.