A exibição precisa do tempo é um recurso essencial esperado de um sistema de infoentretenimento automotivo. Embora isso possa parecer aparentemente simples, especialmente quando as expectativas de gerenciamento de horário e fuso horário são baixas e precisam ser atendidas, o tempo rapidamente se torna complexo quando uma data e hora precisas e confiáveis devem ser exibidas sem intervenção manual.
Todos os relógios de tempo real normalmente usados no sistema no chip (SoC) contêm algum desvio, que se acumula ao longo do tempo e pode levar a erros significativos quando não corrigido. Além disso, como são altas as expectativas de que a hora local seja exibida com precisão, o deslocamento correto do Tempo Universal Coordenado (UTC) deve ser considerado.
As informações de fuso horário, bem como a aplicação do horário de verão (DST), podem mudar durante a vida útil esperada de um veículo. Por exemplo, após muitos anos de implementação do horário de verão, o Brasil optou por não iniciar uma programação de horário de verão em 2019.
O Android fornece a infraestrutura necessária para lidar com as complicações do gerenciamento de regras de fuso horário. Para obter detalhes, consulte Regras de fuso horário , que permitem que os OEMs enviem dados atualizados de regras de fuso horário para dispositivos sem exigir uma atualização do sistema. Este mecanismo permite:
- Os usuários receberão atualizações oportunas (que prolongam a vida útil de um dispositivo Android).
- OEMs devem testar atualizações de fuso horário independentemente das atualizações de imagem do sistema.
Observação: o AAOS 10 não oferece suporte ao mecanismo de atualização de módulo baseado em APEX fornecido nas versões do Android 10 (e superiores).
Nota: Para implementar este mecanismo, é necessária uma reinicialização do sistema.
Fontes de informação de horário (fuso) em carros
Os dispositivos Android gerenciam o horário no horário Unix no nível do sistema, aplicam o deslocamento de fuso horário desejado e, em seguida, convertem o valor para o horário local para exibição aos usuários. O ID de zona do usuário atual (geralmente chamado de Olson ID) é armazenado como uma configuração. Por exemplo, Europa/Londres .
Grande parte do mecanismo descrito abaixo descreve informações de tempo. A intenção desses padrões é fornecer aos usuários a hora atual e não descrever as regras de fuso horário aplicáveis. Para determinar o fuso horário real, o dispositivo deve trabalhar a partir de fatores como país, deslocamento e deslocamento de horário de verão antes de definir o ID da zona.
O processo pode ser um desafio. Trabalhar com base nas informações disponíveis pode ser ambíguo. Por exemplo, a regra de fuso horário América/Denver observa o horário de verão, mas adota o horário de verão das montanhas (MDT) durante o verão, enquanto América/Phoenix continua a reconhecer o MDT.
Rádio celular
A informação do sistema (SI) é um aspecto essencial da interface aérea Long-Term Evolution (LTE), que é transmitida pela estação base (BS) através do canal de controle de transmissão (BCCH). 3GPP TS 36.331 especifica o SystemInformationBlockType16 (SIB16) que contém informações relacionadas a GPS e Tempo Universal Coordenado (UTC), deslocamento de horário local, bem como informações de horário de verão.
Funcionalidades semelhantes podem ser encontradas em 2G e 3G, onde informações de identidade de rede e fuso horário (NITZ) podem ser transmitidas (consulte 3GPP TS 22.042 para obter detalhes). Outros padrões de rádio celular possuem recursos equivalentes.
Infelizmente, o ponto em comum entre a maioria dos padrões é que o envio desta informação é opcional, por isso não está universalmente disponível em todas as redes.
Prós | Contras |
---|---|
|
|
Protocolo de horário de rede
O Network Time Protocol (NTP) é frequentemente usado para obter informações de tempo de época Unix relativamente precisas. O Android suporta a sincronização da hora do sistema com a de um servidor NTP se puder ser exposto aos clientes do RadioManager
por meio dos metadados genéricos RadioTuner.getParameters()
. O NTP atualiza a hora do sistema quando ele fica fora de sincronia e uma operadora não forneceu recentemente uma atualização do NITZ. Se o usuário ativar AUTO_TIME
quando NITZ não estiver disponível, o sistema verificará imediatamente o horário da rede.
Prós | Contras |
---|---|
Simplicidade, suportada pelo Android. |
|
Sintonizador de rádio de transmissão
Embora seja atraente aproveitar um sintonizador integrado para recuperar informações de horário e fuso horário, há desafios envolvidos. Numerosos padrões de transmissão de rádio definem opções para expor as informações desejadas. De modo geral, um sintonizador de transmissão de rádio fornece as mesmas informações que um rádio celular.
ETSI EN 300 401 V1.4.1 (2006-06), seção 8.1 especifica recursos de informações de serviço que fornecem informações complementares sobre serviços para programas de áudio e dados para sistemas de transmissão de áudio digital (DAB). A Seção 8.1.3 define o formato de hora e data, bem como informações sobre a diferença de horário do país e local.
Da mesma forma, para o Radio Data System (RDS) comumente implementado em sintonizadores FM, a seção 3.1.5.6 da norma EN 50067 define o formato da hora do relógio e dos dados (transmitidos uma vez por minuto). Além disso, o código de país estendido (ECC) também pode ser recuperado como parte da identificação do programa transmitido.
O HD Radio contém opções correspondentes como parte da especificação de transporte do serviço de informações da estação, descrição do projeto da interface aérea do HD Radio™, na mensagem de parâmetro do serviço de informações da estação (SIS) (MSG ID 0111). A Seção 5 explicita claramente palavras de advertência que devem ser atendidas ao tentar usar o suporte de relógio da transmissão. A mesma sabedoria se aplica igualmente a outros sistemas:
... esses dados descrevem o costume local no local da emissora, que pode ou não ser igual ao costume local no local do receptor. Perto dos limites do fuso horário, os consumidores podem receber uma multiplicidade de estações que fornecem dados diferentes. Portanto, estes dados são fornecidos apenas como dicas, cuja interpretação e utilização devem ser discricionárias, sujeitas ao controle do cliente. ..." |
Além disso, pelo menos para HD Radio, a transmissão desta informação é opcional e não deve ser considerada exclusiva.
- Normalmente disponível em diferentes padrões regionais de rádio de transmissão.
- Não requer conectividade com a Internet.
- O Android não suporta isso imediatamente.
- Requer que o sintonizador esteja ligado (pelo menos ocasionalmente em segundo plano) para detectar informações de forma confiável.
A confiabilidade depende da emissora.
Dicas de implementação
O Android suporta a sincronização da hora do sistema com a de um servidor NTP se puder ser exposto a clientes doRadioManager
. A solução recomendada é aproveitar o recurso de extensão do fornecedor. A implementação desta funcionalidade deve ocorrer na camada de abstração de hardware (HAL), após a qual pode ser exposta aos clientes do RadioManager
através do método genérico RadioTuner.getParameters()
. Para que a solução permaneça robusta, o consumidor desta extensão do fornecedor deve determinar se o HAL suporta o recurso (não assuma a sua existência). As sequências de parâmetros para a chamada getParameters
devem ser organizadas de forma limpa para uso inequívoco entre fornecedores. Por exemplo, usando o namespace da sua organização prefixando-o com o domínio apropriado, por exemplo, com.me.timezoneTuner.currenttimezone
.
Dada a natureza das informações orientada a eventos, pode ser benéfico usar o retorno de chamada RadioTuner.Callback.onParametersUpdated()
para receber essas informações. Se esse recurso for configurável, projete um conjunto de rotinas customizadas sobre setParameters
. Por exemplo:
com.me.timezoneTuner.currenttimezoneEvent.enable
Sistema global de navegação por satélite
Por si só, o Sistema Global de Navegação por Satélite (GNSS) pode fornecer apenas informações precisas de hora e posição.
Geolocalização
A solução para este inconveniente é executar a geocodificação reversa e determinar o país e o fuso horário fazendo uma pesquisa baseada na posição. GNSS é a escolha óbvia (e de melhor qualidade) de informações de localização em um veículo. A API Time Zone do Google oferece tudo o que é necessário para executar a conversão necessária. Claro, é necessária conectividade com a Internet. Garantir a privacidade do usuário deve ser uma prioridade máxima ao implementar uma solução online! A permissão de um usuário para aceitar (ou não) custos de uso de dados é necessária e deve ser solicitada.
É viável criar uma solução adequada para uso offline. Um banco de dados de mapas locais com resolução suficiente para determinar com precisão o país e o fuso horário pode caber no armazenamento de um veículo. Com isso e uma estratégia totalmente implementada para atualizar as informações de fuso horário (e país), conforme necessário, é possível geocodificar reversamente o país/fuso horário com base na posição GNSS obtida do subsistema Localização.
Prós | Contras |
---|---|
|
|
Telefone conectado via Bluetooth, Wi-Fi ou USB
Várias tecnologias podem ser usadas para aproveitar o telefone de um usuário para obter dados de horário e fuso horário. Para todos os telefones, um par de aplicativos personalizados e aplicativos complementares devem ser instalados no telefone e no sistema de informação e entretenimento no veículo (IVI). É então possível sincronizar a hora no intervalo desejado. Por exemplo, ao estabelecer a conexão e quando o telefone detecta um novo fuso horário.
Alguns telefones que suportam Bluetooth Low Energy (BLE) oferecem a opção de recuperar a hora por meio da característica de hora atual do GATT e da especificação de perfil de serviço de hora atual 1.1 . No entanto, esta opção não abrange um segmento de mercado suficientemente vasto para ser exclusivamente invocado.
Prós | Contras |
---|---|
|
|
Usar fontes
Cada fornecedor de dispositivos deve determinar o nível de exigência a ser definido e quais jornadas do usuário considerar mais críticas. Somente com uma compreensão clara das experiências críticas desejadas do usuário é que se pode chegar à melhor decisão. Na maioria dos casos, os fornecedores devem considerar as compensações entre conveniência e complexidade de implementação.
Cada opção descrita acima apresenta vantagens e desvantagens. Por exemplo, uma escolha crítica de design deve ser feita em relação a quanta resiliência, em comparação com uma exibição ocasional de tempo ruim, é aceitável e como gerenciar as desvantagens. Uma solução totalmente automática que possa funcionar bem em todos os cenários deve, no entanto, basear-se numa combinação de diversas fontes de informação. Nenhuma opção pode fornecer 100% de disponibilidade.
Uma opção de configuração manual como alternativa temporária é fácil de executar e pode, na prática, ser suficiente para muitos usuários.