Externe Zeiterkennung

Ab Android 12 kann Android optional eine externe Zeitquelle verwenden, um dem Dienst time_detector Unix-Epochenzeiten vorzuschlagen. Diese Funktion ist in AOSP nicht standardmäßig aktiviert.

Mit dem externen Zeitursprung können Gerätehersteller Android vollständig benutzerdefinierte Zeitvorschläge zur Verfügung stellen. Nachdem der time_detector-Dienst Vorschläge vom externen Zeitursprung erhalten hat, wird anhand der konfigurierten Priorisierungsregeln entschieden, 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 sendet.

Verwenden Sie zum Konfigurieren des externen Ursprungs die Konfigurationsdatei des core/res/res/values/config.xml-Systemservers. Fügen Sie den Wert external zu config_autoTimeSourcesPriority hinzu.

Im folgenden Beispiel wird Android angewiesen, externen Zeitvorschlägen die höchste Priorität zuzuweisen, wenn die Systemuhr eingestellt wird. Wenn kein gültiger externer Zeitvorschlag verfügbar ist, wird der nächste Ursprung verwendet, in diesem Fall gnss.

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

Wenn Sie dem System einen externen Zeitvorschlag geben möchten, verwenden Sie die Methode suggestExternalTime() in TimeManager. Wenn der externe Ursprung in der Konfigurationsdatei mit config_autoTimeSourcesPriority 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.