Externe Zeiterkennung

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.