Rilevamento del tempo esterno

A partire da Android 12, Android può facoltativamente utilizzare una fonte di tempo esterna per suggerire gli orari delle epoche Unix al servizio time_detector . Questo non è abilitato per impostazione predefinita in AOSP.

L'origine temporale esterna consente ai produttori di dispositivi di fornire suggerimenti temporali completamente personalizzati ad Android. Dopo aver ricevuto suggerimenti dall'origine dell'ora esterna, il servizio time_detector determina se aggiornare l'orologio di sistema utilizzando le regole di priorità configurate.

Implementazione

Per supportare il rilevamento dell'ora esterna, i produttori di dispositivi devono implementare un componente che invii suggerimenti sull'ora esterna al servizio time_detector tramite una chiamata API di sistema.

Per configurare l'origine esterna, utilizzare il file di configurazione del server di sistema core/res/res/values/config.xml . Aggiungi il valore external a config_autoTimeSourcesPriority .

L'esempio seguente indica ad Android di assegnare ai suggerimenti orari esterni la massima priorità quando si imposta l'orologio di sistema. Se non è disponibile alcun suggerimento temporale esterno valido, viene utilizzata l'origine successiva, in questo caso gnss .

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

Per fornire al sistema un suggerimento temporale esterno, utilizzare il metodo suggestExternalTime() in TimeManager . Se l'origine esterna è configurata utilizzando config_autoTimeSourcesPriority nel file di configurazione e non sono disponibili suggerimenti temporali con priorità più elevata, Android utilizza il timestamp passato a questo metodo per impostare l'ora dell'epoca Unix corrente.