Externe Zeiterkennung

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 dem externen Zeitursprung können Sie Android vollständig benutzerdefinierte Zeitvorschläge bereitstellen. Nachdem der time_detector-Dienst Vorschläge vom externen Zeitursprung erhalten hat, wird anhand der konfigurierten Regeln für die automatische Zeitpriorisierung entschieden, ob die Systemuhr aktualisiert werden soll.

Implementierung

Zur Unterstützung der externen Zeiterkennung müssen Sie 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.