Options de fuseau horaire

L'affichage précis de l'heure est une fonctionnalité essentielle attendue d'un système d'infodivertissement automobile. Bien que cela puisse paraître trompeusement simple, en particulier lorsque les attentes en matière de gestion de l'heure et des fuseaux horaires sont faibles et doivent être satisfaites, l'heure devient rapidement complexe lorsqu'une date et une heure fiables et précises doivent être affichées sans intervention manuelle.

Toutes les horloges temps réel généralement utilisées dans les systèmes sur puce (SoC) contiennent une certaine dérive, qui s'accumule au fil du temps et peut entraîner des erreurs importantes 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, il est nécessaire de tenir compte du décalage correct par rapport au temps universel coordonné (UTC).

Les informations sur le fuseau horaire, ainsi que l'application de l'heure d'été, peuvent être amenées à 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 de l'heure d'été, le Brésil a décidé de ne pas commencer à l'appliquer 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 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 update. Ce mécanisme permet :

  • aux utilisateurs de recevoir des mises à jour en temps voulu (ce qui prolonge la durée de vie utile d'un appareil Android) ;
  • aux OEM de tester les mises à jour de fuseau horaire indépendamment des mises à jour d'image système.

Remarque : AAOS 10 n'est pas compatible avec le mécanisme de mise à jour de module basé sur APEX fourni dans les versions d'Android 10 (et versions ultérieures).

Remarque : Pour implémenter ce mécanisme, il est nécessaire de redémarrer le système.

Sources d'informations sur l'heure (et le fuseau horaire) dans les voitures

Les appareils Android gèrent l'heure au format 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 décrit les informations sur l'heure. L'objectif de ces normes est de fournir aux utilisateurs l'heure actuelle, et non de décrire les règles de fuseau horaire applicables. Pour déterminer le fuseau horaire réel, l'appareil doit tenir compte de facteurs tels que le pays, le décalage et le décalage de l'heure d'été avant de définir l'ID de zone.

Ce processus peut être difficile. Le fait de revenir en arrière 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 d'été des Rocheuses (MDT) pendant l'été, tandis qu'America/Phoenix continue de reconnaître la MDT.

Radio mobile

Les informations système (SI) sont un aspect essentiel de l'interface radio Long-Term Evolution (LTE), qui est transmise par la station de base (BS) sur le canal de contrôle de diffusion (BCCH). La norme 3GPP TS 36.331 spécifie le SystemInformationBlockType16 (SIB16), qui contient des informations liées au GPS et au temps universel coordonné (UTC), au décalage de l'heure locale, ainsi qu'à 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 (pour en savoir plus, consultez la norme 3GPP TS 22.042). D'autres normes de radio mobile disposent de fonctionnalités équivalentes.

Malheureusement, la plupart des normes ont en commun que l'envoi de ces informations est facultatif. Elles ne sont donc pas universellement disponibles sur tous les réseaux.

Avantages Inconvénients
  • Lorsqu'elles sont disponibles, elles fournissent la plupart des informations souhaitées.
  • Simplicité, déjà prise en charge par Android lorsque la radio mobile est exposée en tant que téléphone, et pas seulement en tant que modem de données.
  • Ne nécessite pas de connexion Internet.
  • Aucune garantie que les informations soient diffusées ni que la station de base soit correctement configurée.

  • Dans les régions frontalières, risque de capter une antenne-relais (en itinérance) d'un pays voisin et de transmettre potentiellement le mauvais fuseau horaire.

  • Dans certains endroits, les mises à jour peuvent prendre des heures, voire des jours.

Protocole NTP

Le protocole NTP (Network Time Protocol) est souvent utilisé pour obtenir des informations relativement précises sur l'heure Unix. Android est compatible avec 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 génériques RadioTuner.getParameters(). Le protocole 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 du réseau.

Avantages Inconvénients

Simplicité, prise en charge par Android.

  • Incomplet, le protocole NTP ne fournit qu'une seule valeur nécessaire (l'heure). Même dans le meilleur des cas, le protocole NTP ne peut pas fournir le fuseau horaire.

  • Nécessite une connexion Internet.

Tuner radio de diffusion

Bien qu'il soit intéressant d'utiliser un tuner intégré pour récupérer des informations sur l'heure et le fuseau horaire, cela présente des difficultés. De nombreuses normes de diffusion radio définissent des options permettant d'exposer les informations souhaitées. En règle générale, un tuner radio de diffusion fournit les mêmes informations qu'une radio mobile.

La section 8.1 de la norme ETSI EN 300 401 V1.4.1 (2006-06) spécifie des 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 de l'heure locale.

De même, pour le système de données radio (RDS) couramment implémenté dans les tuners FM, la section 3.1.5.6 de la norme EN 50067 définit le format de l'heure et des données (transmises une fois par minute). De plus, le code pays étendu (ECC) peut également être récupéré dans le cadre de l'identification du programme transmis.

La radio HD contient des options correspondantes dans la spécification de transport du service d'informations sur les stations de la description de la conception de l'interface radio HD™ dans le message de paramètre du service d'informations sur les stations (SIS) (ID de message 0111). La section 5 indique clairement les mots de mise en garde à respecter lorsque vous tentez d'utiliser la prise en charge de l'horloge de la diffusion. La même logique s'applique également aux autres systèmes :

... ces données décrivent la coutume locale à l'emplacement du diffuseur, qui peut ou non être la même que la coutume locale à l'emplacement du récepteur. À proximité des limites de fuseau horaire, les consommateurs peuvent recevoir une multitude de 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, pour la radio HD au moins, la diffusion de ces informations est facultative et ne doit pas être la seule source d'informations.

Avantages Inconvénients
  • Généralement disponible dans différentes normes régionales de diffusion radio.
  • Ne nécessite pas de connexion Internet.
  • Android n'est pas compatible avec cette fonctionnalité prête à l'emploi.
  • Nécessite que le tuner soit activé (au moins de temps en temps en arrière-plan) pour détecter les informations de manière fiable.
  • La fiabilité dépend du diffuseur.

Conseils d'implémentation

Android est compatible avec la synchronisation de son heure système avec celle d'un serveur NTP si elle peut être exposée aux clients de RadioManager. La solution recommandée consiste à utiliser la fonctionnalité d'extension du fournisseur. L'implémentation de cette fonctionnalité doit avoir lieu dans la couche d'abstraction matérielle (HAL), après quoi elle peut être exposée aux clients de RadioManager via la méthode générique RadioTuner.getParameters().

Pour que la solution reste robuste, le consommateur de cette extension de fournisseur doit déterminer si la HAL est compatible avec la fonctionnalité (ne supposez pas son existence). Les chaînes de paramètres de l'appel getParameters doivent être clairement organisées pour une utilisation sans ambiguïté entre les fournisseurs. Par exemple, en utilisant l'espace de noms de votre organisation en le préfixant avec le domaine approprié, par exemple, com.me.timezoneTuner.currenttimezone.

Étant donné la nature événementielle des informations, il peut être utile d'utiliser le rappel RadioTuner.Callback.onParametersUpdated() pour recevoir ces informations. Si cette fonctionnalité doit être configurable, concevez un ensemble de routines personnalisées en plus de setParameters. Exemple :

com.me.timezoneTuner.currenttimezoneEvent.enable

En soi, le système mondial de navigation par satellite (GNSS) ne peut fournir que des informations précises sur l'heure et la position.

Géolocalisation

Pour résoudre cet inconvénient, 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 Time Zone de Google offre tout ce qui est nécessaire pour exécuter la conversion requise. Bien sûr, 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 de consommation des données est requise et doit être demandée.

Il est possible de créer une solution adaptée à une utilisation hors connexion. Une base de données cartographiques locale avec une résolution suffisante pour déterminer avec précision le pays et le fuseau horaire peut être intégrée dans le stockage d'un véhicule. Avec cette stratégie et une stratégie entièrement implémentée pour mettre à jour les informations sur le fuseau horaire (et le pays) si nécessaire, il est possible de géocoder le pays/le fuseau horaire en fonction de la position GNSS obtenue à partir du sous-système de localisation.

Avantages Inconvénients
  • Peut déterminer sans ambiguïté le fuseau horaire correct.
  • Ne nécessite pas de connexion Internet (en cas de base de données locale).
  • Fonctionne de manière fiable pour la plupart des scénarios de conduite.
  • Android n'est pas compatible avec cette fonctionnalité prête à l'emploi.
  • Si le véhicule se trouve à l'intérieur/dans une zone couverte où une bonne réception des satellites GNSS n'est pas possible lors de la configuration initiale, il est impossible d'obtenir des informations précises sur l'heure, la position, et le fuseau horaire.
  • La base de données locale nécessite un mécanisme de mise à jour.
  • Complexité de l'implémentation.

Téléphone connecté via Bluetooth, Wi-Fi ou 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'infodivertissement embarqué (IVI). Il est alors 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) offrent la possibilité de récupérer l'heure via la caractéristique GATT Current Time et la spécification de profil Current Time Service 1.1. Toutefois, cette option ne s'adresse pas à un segment de marché suffisamment large pour être utilisée exclusivement.

Avantages Inconvénients
  • Ne nécessite pas de connexion Internet.
  • Les changements de fuseau horaire détectés par le téléphone peuvent être relayés vers l'unité principale.
  • Android n'est pas compatible avec cette fonctionnalité prête à l'emploi.
  • Ne fonctionne que lorsque le téléphone est connecté à l'unité principale.
  • L'heure est aussi bonne ou mauvaise que celle fournie par le téléphone.
  • L'implémentation est complexe.
  • Tous les téléphones ne sont pas compatibles avec le profil BLE GATT Current Time Service.

Utiliser des sources

Chaque fournisseur d'appareils doit déterminer le niveau d'exigence à définir et les parcours utilisateur à considérer comme les plus critiques. Ce n'est qu'en comprenant clairement les expériences utilisateur critiques souhaitées que la meilleure décision peut être prise. Dans la plupart des cas, les fournisseurs doivent tenir compte des compromis entre commodité et complexité de l'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 à un affichage de l'heure parfois médiocre, et la manière de gérer les inconvénients. Une solution entièrement automatique qui devrait bien fonctionner dans tous les scénarios doit être basée sur une combinaison de plusieurs sources d'informations. Aucune option ne peut fournir une disponibilité à 100 %.

Une option de configuration manuelle en tant que solution de secours temporaire est facile à exécuter et peut, en pratique, être suffisante pour de nombreux utilisateurs.