Détection de l'heure externe

À partir d'Android 12, Android peut éventuellement utiliser une source de temps externe pour suggérer des heures d'époque Unix au service time_detector . Ceci n'est pas activé 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 horaire externe, le service time_detector détermine s'il convient de mettre à jour l'horloge système à l'aide des règles de priorisation configurées.

Mise en œuvre

Pour prendre en charge la détection d'heure externe, les fabricants d'appareils doivent implémenter un composant qui soumet des suggestions d'heure externes 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 d'heure externes lors du réglage de l'horloge système. S'il n'existe aucune suggestion d'heure externe valide 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'heure externe, utilisez la méthode suggestExternalTime() dans TimeManager . Si l'origine externe est configurée à l'aide config_autoTimeSourcesPriority dans le fichier de configuration et qu'aucune suggestion d'heure de priorité plus élevée n'est disponible, Android utilise l'horodatage transmis à cette méthode pour définir l'heure actuelle d'Unix.