Détection externe du temps

À partir d'Android 12, Android peut éventuellement utiliser une source de temps externe pour suggérer des dates Unix à l'aide du service time_detector. Cette option n'est pas activée par défaut dans AOSP.

L'origine temporelle externe permet aux fabricants d'appareils de fournir des suggestions d'heure entièrement personnalisées à Android. Après avoir reçu des suggestions de l'origine de l'heure externe, le service time_detector détermine s'il faut mettre à jour l'horloge système à l'aide des règles de priorisation configurées.

Implémentation

Pour prendre en charge la détection de l'heure externe, les fabricants d'appareils doivent implémenter un composant qui envoie des suggestions d'heure externe au service time_detector via un appel d'API système.

Pour configurer l'origine externe, utilisez le fichier de configuration du serveur système core/res/res/values/config.xml. Ajoutez la valeur external à config_autoTimeSourcesPriority.

L'exemple suivant indique à Android d'accorder la priorité la plus élevée aux suggestions de temps externes lors de la configuration de l'horloge système. Si aucune suggestion de temps externe valide n'est disponible, l'origine suivante, gnss dans ce cas, est utilisée.

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

Pour fournir au système une suggestion d'horaire externe, utilisez la méthode suggestExternalTime() dans TimeManager. Si l'origine externe est configurée à l'aide de config_autoTimeSourcesPriority dans le fichier de configuration et qu'aucune suggestion d'heure de priorité supérieure n'est disponible, Android utilise le code temporel transmis à cette méthode pour définir l'heure Unix actuelle.