Détection externe du temps

À partir d'Android 12, Android peut éventuellement utiliser un source de temps pour suggérer des heures d'epoch Unix au Service time_detector. Ce n'est pas activée par défaut dans AOSP.

L'origine temporelle externe permet aux fabricants d'appareils de fournir des des suggestions d'horaires personnalisées sur Android. Après recevoir des suggestions de l'origine de l'heure externe, le service time_detector ; détermine si l'horloge système doit être mise à jour à l'aide de l'API règles de priorisation.

Implémentation

Pour permettre la détection externe du temps, les fabricants d'appareils doivent implémenter un composant qui envoie des suggestions d'horaires externes au time_detector via un appel d'API système.

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

L'exemple suivant indique à Android de proposer des suggestions d'horaires externes pour la priorité la plus élevée lors de la définition de l'horloge système. S'il n'existe aucune ressource externe valide d'horaires suggérés, le point de départ suivant, gnss dans ce cas, est utilisé.

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

Pour fournir au système une suggestion d'horaire externe, utilisez le suggestExternalTime() dans TimeManager. Si l'origine externe est configurée via config_autoTimeSourcesPriority dans le fichier de configuration et pas de niveau supérieur les suggestions d'horaires prioritaires sont disponibles, Android utilise code temporel transmis à cette méthode pour définir l'heure actuelle de l'epoch Unix.