L'affichage précis de l'heure est une caractéristique essentielle attendue d'un système d'infoloisirs automobile. Bien que cela puisse sembler simple, en particulier lorsque les attentes en termes de gestion du temps et des fuseaux horaires sont faibles et doivent être satisfaites, le temps devient rapidement complexe lorsqu'une date et une heure précises doivent être affichées sans intervention manuelle.
Toutes les horloges en temps réel généralement utilisées dans les systèmes sur puce (SoC) présentent une dérive, qui s'accumule au fil du temps et peut entraîner une erreur importante si elle n'est pas corrigée. De plus, comme les utilisateurs s'attendent à ce que l'heure locale soit affichée avec précision, le décalage horaire correct par rapport au temps universel coordonné (UTC) doit être pris en compte.
Les informations sur le fuseau horaire, ainsi que l'application de l'heure d'été, peuvent changer au cours de la durée de vie prévue d'un véhicule. Par exemple, après de nombreuses années d'application du DST, le Brésil a choisi de ne pas démarrer de calendrier de DST en 2019.
Android fournit l'infrastructure nécessaire pour gérer les complications liées à la gestion des règles de fuseau horaire. Pour en savoir plus, consultez la section Règles de fuseau horaire, qui permet aux OEM d'envoyer des données de règles de fuseau horaire mises à jour aux appareils sans nécessiter de mise à jour du système. Ce mécanisme permet les opérations suivantes:
- Les utilisateurs reçoivent des mises à jour à temps (ce qui prolonge la durée de vie d'un appareil Android).
- Les OEM peuvent tester les mises à jour du fuseau horaire indépendamment des mises à jour de l'image système.
Remarque:AAOS 10 n'est pas compatible avec le mécanisme de mise à jour des modules basé sur APEX fourni dans les versions d'Android 10 (et versions ultérieures).
Remarque:Pour implémenter ce mécanisme, un redémarrage du système est nécessaire.
Sources d'informations sur l'heure (fuseau horaire) dans les voitures
Les appareils Android gèrent le temps en temps Unix au niveau du système, appliquent le décalage de fuseau horaire souhaité, puis convertissent la valeur en heure locale pour l'afficher aux utilisateurs. L'ID de zone de l'utilisateur actuel (souvent appelé ID Olson) est stocké en tant que paramètre. (par exemple, Europe/London).
Une grande partie du mécanisme décrit ci-dessous concerne les informations temporelles. L'objectif de ces normes est de fournir aux utilisateurs l'heure actuelle, et non de décrire les règles applicables en matière de fuseaux horaires. Pour déterminer le fuseau horaire réel, l'appareil doit remonter à partir de facteurs tels que le pays, le décalage et le décalage UTC avant de définir l'ID de zone.
Ce processus peut s'avérer difficile. Travailler à rebours en fonction des informations disponibles peut être ambigu. Par exemple, la règle de fuseau horaire America/Denver observe l'heure d'été, mais adopte l'heure avancée du Pacifique (MDT) pendant l'été, tandis que America/Phoenix continue de reconnaître l'heure avancée du Pacifique.
Radio mobile
Les informations système (SI) sont un aspect essentiel de l'interface radio LTE (Long-Term Evolution), qui est transmise par la station de base (BS) via le canal de contrôle de diffusion (BCCH). La spécification 3GPP TS 36.331 définit le SystemInformationBlockType16 (SIB16), qui contient des informations sur le GPS et le temps universel coordonné (UTC), le décalage horaire local, ainsi que des informations sur l'heure d'été.
Une fonctionnalité similaire est disponible en 2G et 3G, où les informations sur l'identité du réseau et le fuseau horaire (NITZ) peuvent être diffusées (voir la norme 3GPP TS 22.042 pour en savoir plus). D'autres normes de radio mobile ont des fonctionnalités équivalentes.
Malheureusement, la plupart des normes stipulent que l'envoi de ces informations est facultatif. Elles ne sont donc pas disponibles sur tous les réseaux.
Avantages | Inconvénients |
---|---|
|
|
Protocole NTP
Le protocole NTP (Network Time Protocol) est souvent utilisé pour obtenir des informations d'heure Unix relativement précises. Android prend en charge la synchronisation de son heure système avec celle d'un serveur NTP si elle peut être exposée aux clients de RadioManager
via les métadonnées RadioTuner.getParameters()
génériques. NTP met à jour l'heure système lorsqu'elle n'est plus synchronisée et qu'un opérateur n'a pas récemment fourni de mise à jour NITZ. Si l'utilisateur active AUTO_TIME
lorsque NITZ n'est pas disponible, le système vérifie immédiatement l'heure réseau.
Avantages | Inconvénients |
---|---|
Simplicité, compatible avec Android |
|
Tuner radio
Bien que l'utilisation d'un tuner intégré pour récupérer des informations sur l'heure et le fuseau horaire soit attrayante, elle présente des défis. De nombreuses normes de diffusion radio définissent des options pour exposer les informations souhaitées. En règle générale, un tuner radio fournit les mêmes informations qu'une radio mobile.
La norme ETSI EN 300 401 V1.4.1 (06/2006), section 8.1 spécifie les fonctionnalités d'informations sur les services qui fournissent des informations supplémentaires sur les services pour les programmes audio et les données des systèmes de diffusion audio numérique (DAB). La section 8.1.3 définit le format de l'heure et de la date, ainsi que des informations sur le pays et le décalage horaire local.
De même, pour le Radio Data System (RDS) couramment implémenté dans les tuners FM, la section 3.1.5.6 de la norme EN 50067 définit le format pour l'heure et les données (transmises une fois par minute). En outre, le code pays étendu (ECC) peut également être récupéré dans l'identification du programme transmis.
La radio HD contient les options correspondantes dans la spécification HD Radio™ Air Interface Design Description Station Information Service Transport (Description de la conception de l'interface radio HD, transport du service d'informations sur la station) dans le message de paramètre du service d'informations sur la station (SIS, Station Information Service) (ID de message 0111). La section 5 énonce clairement les avertissements à prendre en compte lorsque vous essayez d'utiliser la fonctionnalité de synchronisation de l'émission. La même sagesse s'applique également à d'autres systèmes:
... ces données décrivent les coutumes locales à l'emplacement du diffuseur, qui peuvent ou non être les mêmes que les coutumes locales à l'emplacement du récepteur. À proximité des limites de fuseau horaire, les consommateurs peuvent recevoir de nombreuses stations fournissant des données différentes. Par conséquent, ces données ne sont fournies qu'à titre indicatif, et leur interprétation et leur utilisation doivent être laissées à la discrétion du client. ..." |
De plus, au moins pour la radio HD, la diffusion de ces informations est facultative et ne doit pas être utilisée exclusivement.
Avantages Inconvénients- Généralement disponible sur différentes normes de radiodiffusion régionales.
- Ne nécessite pas de connexion Internet.
- Android n'est pas compatible avec cette fonctionnalité.
- Nécessite que le tuner soit activé (au moins occasionnellement en arrière-plan) pour détecter de manière fiable les informations.
-
La fiabilité dépend de la chaîne de diffusion.
Conseils d'implémentation
Android prend en charge la synchronisation de son heure système avec celle d'un serveur NTP s'il peut être exposé aux clients deRadioManager
. La solution recommandée consiste à exploiter la fonctionnalité d'extension du fournisseur.
L'implémentation de cette fonctionnalité doit se produire dans la couche d'abstraction matérielle (HAL), après quoi elle peut être exposée aux clients de RadioManager
via la méthode RadioTuner.getParameters()
générique.
Pour que la solution reste robuste, le consommateur de cette extension de fournisseur doit déterminer que le HAL est compatible avec la fonctionnalité (ne pas supposer son existence). Les chaînes de paramètres de l'appel getParameters
doivent être organisées de manière claire pour une utilisation claire entre les fournisseurs. Par exemple, en utilisant l'espace de noms de votre organisation en y ajoutant le domaine approprié (par exemple, com.me.timezoneTuner.currenttimezone
).
Compte tenu de la nature événementielle des informations, il peut être utile d'utiliser le rappel RadioTuner.Callback.onParametersUpdated()
pour les recevoir. Si cette fonctionnalité doit être configurable, concevez un ensemble de routines personnalisées en plus de setParameters
. Exemple :
com.me.timezoneTuner.currenttimezoneEvent.enable
Global Navigation Satellite System
Le système de navigation par satellite mondial (GNSS) ne peut fournir que des informations temporelles et de position précises.
Géolocalisation
Pour résoudre ce problème, exécutez un géocodage inversé et déterminez le pays et le fuseau horaire en effectuant une recherche en fonction de la position. Le GNSS est le choix évident (et de meilleure qualité) pour les informations de localisation dans un véhicule. L'API Fuseau horaire de Google offre tout ce dont vous avez besoin pour exécuter la conversion requise. Bien entendu, une connexion Internet est requise. La protection de la confidentialité des utilisateurs doit être une priorité absolue lors de l'implémentation d'une solution en ligne. L'autorisation d'un utilisateur d'accepter (ou non) les coûts d'utilisation des données est requise et doit être demandée.
Il est possible de créer une solution adaptée à l'utilisation hors connexion. Une base de données de cartes locales avec une résolution suffisante pour déterminer précisément le pays et le fuseau horaire peut tenir dans l'espace de stockage d'un véhicule. Avec cela et une stratégie entièrement implémentée pour mettre à jour les informations sur le fuseau horaire (et le pays) en fonction des besoins, vous pouvez géocoder à l'envers le pays/fuseau horaire en fonction de la position GNSS obtenue à partir du sous-système de localisation.
Avantages | Inconvénients |
---|---|
|
|
Téléphone connecté via le Bluetooth, le Wi-Fi ou l'USB
Plusieurs technologies peuvent être utilisées pour exploiter le téléphone d'un utilisateur afin d'obtenir des données sur l'heure et le fuseau horaire. Pour tous les téléphones, une paire d'applications personnalisées et d'applications associées doit être installée sur le téléphone et sur le système d'infoloisirs embarqué (IVI). Il est ensuite possible de synchroniser l'heure à l'intervalle souhaité. Par exemple, lors de l'établissement de la connexion et lorsque le téléphone détecte un nouveau fuseau horaire.
Certains téléphones compatibles avec le Bluetooth à basse consommation (BLE) permettent de récupérer l'heure via la caractéristique GATT Current Time et la spécification de profil de service Current Time 1.1. Toutefois, cette option ne concerne pas un segment de marché suffisamment important pour s'appuyer exclusivement dessus.
Avantages | Inconvénients |
---|---|
|
|
Utiliser des sources
Chaque fournisseur d'appareils doit déterminer la hauteur de la barre à fixer et les parcours utilisateur les plus critiques. Vous ne pourrez prendre la meilleure décision qu'en ayant une compréhension claire des expériences utilisateur critiques souhaitées. Dans la plupart des cas, les fournisseurs doivent tenir compte des compromis entre la commodité et la complexité d'implémentation.
Chaque option décrite ci-dessus présente des avantages et des inconvénients. Par exemple, un choix de conception critique doit être fait concernant le niveau de résilience acceptable par rapport à l'affichage occasionnel de mauvaises heures et la manière de gérer les inconvénients. Solution entièrement automatique qui doit fonctionner dans tous les scénarios, mais qui doit être basée sur une combinaison de plusieurs sources d'informations. Aucune option ne peut garantir une disponibilité de 100 %.
Une option de configuration manuelle comme solution de secours temporaire est facile à exécuter et peut, en pratique, suffire pour de nombreux utilisateurs.