Ab Android 12 kann Android optional eine externe Zeitquelle verwenden, um dem time_detector
-Dienst Unix-Epochenzeiten vorzuschlagen. Diese Funktion ist in AOSP nicht standardmäßig aktiviert.
Mit der externen Zeitquelle können Gerätehersteller Android ganz individuelle Zeitvorschläge zur Verfügung stellen. Nachdem der time_detector
-Dienst Vorschläge vom externen Zeitursprung erhalten hat, bestimmt er anhand der konfigurierten Priorisierungsregeln, ob die Systemuhr aktualisiert werden soll.
Implementierung
Zur Unterstützung der externen Zeiterkennung müssen Gerätehersteller eine Komponente implementieren, die externe Zeitvorschläge über einen System-API-Aufruf an den time_detector
-Dienst sendet.
Verwenden Sie die core/res/res/values/config.xml
-Systemserverkonfigurationsdatei, um die externe Quelle zu konfigurieren. Fügen Sie external
zu config_autoTimeSourcesPriority
hinzu.
Im folgenden Beispiel wird Android angewiesen, externen Zeitvorschlägen bei der Einstellung der Systemuhr die höchste Priorität zu geben. Wenn kein gültiger externer Zeitvorschlag verfügbar ist, wird die nächste Quelle, in diesem Fall gnss
, verwendet.
<string-array name="config_autoTimeSourcesPriority">
<item>external</item>
<item>gnss</item>
</string-array>
Wenn du dem System einen externen Zeitvorschlag geben möchtest, verwende die Methode suggestExternalTime()
in TimeManager
. Wenn die externe Quelle in der Konfigurationsdatei mit config_autoTimeSourcesPriority
konfiguriert ist und keine Zeitvorschläge mit höherer Priorität verfügbar sind, verwendet Android den Zeitstempel, der an diese Methode übergeben wird, um die aktuelle Unix-Epochenzeit festzulegen.