Fitur ini memungkinkan partner memilih cara menyinkronkan waktu, baik dari Android Sistem Operasi Otomotif (AAOS) atau dari sistem kendaraan ke Android. Untuk memastikan implementasi yang berkualitas, Anda dapat mengonfigurasi AAOS untuk menggunakan salah satu dari dua properti VHAL baru yang dijelaskan di bawah ini untuk menyebarkan nilai secara efektif. Gunakan:
ANDROID_EPOCH_TIME
untuk menggunakan Android sebagai sumber kebenaran untuk waktu. VHAL mendukung properti hanya tulis ini, yang mengomunikasikan perubahan waktu dari Android ke sistem kendaraan lain, seperti Unit Kontrol Elektronik (ECU) dan Body Control Module (BCM).EXTERNAL_CAR_TIME
untuk tidak menggunakan Android sebagai sumber yang sesungguhnya. Dalam hal ini, VHAL mendukung antarmuka read-only PropertiEXTERNAL_CAR_TIME
, yang mengomunikasikan perubahan waktu dari kendaraan lain (seperti ECU dan BCM) ke Android.
AAOS juga menyediakan TimeDetectorStrategy
yang dapat dikonfigurasi untuk membantu Anda memprioritaskan
sumber waktu yang berbeda dalam Android.
Android adalah sumber ketepatan waktu
Jika Android digunakan sebagai sumber waktu, OEM dapat menyinkronkan sistem mobil lainnya (termasuk ECU dan BCM) dengan waktu Android.
Untuk melakukannya, implementasi VHAL harus mendukung properti write-only
ANDROID_EPOCH_TIME
. Android memublikasikan pembaruan pada properti dengan membaca
waktu sistem, baik saat booting maupun kapan pun sumber waktu di Android berubah.
Android bukanlah sumber ketepatan waktu
Jika Android tidak digunakan sebagai sumber waktu, Anda dapat menyinkronkan waktu Android
waktu (misalnya, dengan ECU atau BCM). Dalam hal ini,
Implementasi VHAL harus mendukung properti hanya baca EXTERNAL_CAR_TIME
dan memublikasikan
memperbarui properti ini setiap kali sumber waktu berubah atau mengkalibrasi ulang jam.
OEM juga harus memastikan bahwa:
- Nilai
config_autoTimeSourcesPriority
terdapat dalamcore/res/res/values/config.xml
. - Properti
config_enableExternalCarTimeToExternalTimeSuggestion
di Konfigurasi overlay CarServicespackages/services/Car/service/res/values/config.xml
disetel ketrue
. - Waktu
external
memiliki prioritas yang sesuai di KonfigurasiTimeDetectorStrategy
. Untuk mempelajari lebih lanjut, lihat Deteksi Waktu GNSS. Contoh:<!-- Specifies priority of automatic time sources. Suggestions from higher entries in the list take precedence over lower ones. See com.android.server.timedetector.TimeDetectorStrategy for available sources. --> <string-array name="config_autoTimeSourcesPriority"> <item>external</item> <item>gnss</item> <item>network</item> <item>telephony</item> </string-array>
Detail implementasi internal Android
Alur berikut terjadi saat properti VHAL ANDROID_EPOCH_TIME
didukung:
TimeHalService
(di CarServices) menerima siaran dari sistem Android untukIntent.ACTION_TIME_CHANGED
.TimeHalService
memublikasikan pembaruan pada Properti VHALANDROID_EPOCH_TIME
.- VHAL dapat menyebarkan nilai waktu yang diterima ke berbagai unit ECU dan/atau BCM.
Alur berikut terjadi saat properti VHAL EXTERNAL_CAR_TIME
didukung:
- VHAL memperbarui properti
EXTERNAL_CAR_TIME
. TimeHalService
(di CarServices) membaca properti melalui langganan.TimeHalService
membuat dan mengirimExternalTimeSuggestion
keTimeManager
.TimeManager
meneruskan saran keTimeDetectorService
.TimeDetectorService
menggunakanTimeDetectorStrategy
untuk memilih waktu sistem.