Ab Android 12 kann Android optional eine externe Zeitquelle verwenden, um dem time_detector
Dienst Unix-Epochenzeiten vorzuschlagen. Dies ist in AOSP standardmäßig nicht aktiviert.
Der externe Zeitursprung ermöglicht es Geräteherstellern, Android vollständig individuelle Zeitvorschläge zu machen. Nachdem er Vorschläge vom externen Zeitursprung erhalten hat, bestimmt der time_detector
Dienst anhand der konfigurierten Priorisierungsregeln , ob die Systemuhr aktualisiert werden soll.
Implementierung
Um die externe Zeiterkennung zu unterstützen, müssen Gerätehersteller eine Komponente implementieren, die externe Zeitvorschläge über einen System-API-Aufruf an den time_detector
Dienst übermittelt.
Um den externen Ursprung zu konfigurieren, verwenden Sie die Systemserver-Konfigurationsdatei core/res/res/values/config.xml
. Fügen Sie den Wert external
zu config_autoTimeSourcesPriority
hinzu.
Das folgende Beispiel weist Android an, externen Zeitvorschlägen beim Einstellen der Systemuhr die höchste Priorität einzuräumen. Wenn kein gültiger externer Zeitvorschlag verfügbar ist, wird der nächste Ursprung, in diesem Fall gnss
, verwendet.
<string-array name="config_autoTimeSourcesPriority">
<item>external</item>
<item>gnss</item>
</string-array>
Um dem System einen externen Zeitvorschlag bereitzustellen, verwenden Sie die Methode suggestExternalTime()
im TimeManager
. Wenn der externe Ursprung mithilfe config_autoTimeSourcesPriority
in der Konfigurationsdatei konfiguriert ist und keine Zeitvorschläge mit höherer Priorität verfügbar sind, verwendet Android den an diese Methode übergebenen Zeitstempel, um die aktuelle Unix-Epochenzeit festzulegen.