Opcje strefy czasowej

Dokładne wyświetlanie czasu to podstawowa funkcja, której oczekuje się od systemu multimedialno-rozrywkowego w samochodzie. Może się to wydawać zwodniczo proste, zwłaszcza gdy oczekiwania dotyczące czasu i zarządzania strefami czasowymi są niskie i muszą zostać spełnione. Jednak czas szybko staje się złożony, gdy trzeba wyświetlać wiarygodne i dokładne daty i godziny bez ręcznej interwencji.

Wszystkie zegary czasu rzeczywistego zwykle używane w układach SOC zawierają pewne odchylenie, które z czasem się kumuluje i może prowadzić do znacznych błędów, jeśli nie zostanie skorygowane. Dodatkowo, ponieważ oczekuje się, że czas lokalny będzie wyświetlany dokładnie, należy wziąć pod uwagę prawidłową różnicę względem skoordynowanego czasu uniwersalnego (UTC).

Informacje o strefie czasowej, a także stosowanie czasu letniego mogą się zmieniać w okresie eksploatacji pojazdu. Na przykład po wielu latach stosowania czasu letniego Brazylia w 2019 r. zrezygnowała z jego wprowadzenia.

Android zapewnia infrastrukturę potrzebną do rozwiązywania problemów związanych z zarządzaniem regułami stref czasowych. Więcej informacji znajdziesz w artykule Reguły stref czasowych, który opisuje, jak producenci OEM mogą przesyłać zaktualizowane dane reguł stref czasowych na urządzenia bez konieczności aktualizowania systemu. Ten mechanizm umożliwia:

  • użytkownicy otrzymują aktualizacje na czas (co wydłuża okres użytkowania urządzenia z Androidem);
  • producenci OEM mogą testować aktualizacje stref czasowych niezależnie od aktualizacji obrazu systemu.

Uwaga: AAOS 10 nie obsługuje mechanizmu aktualizacji modułów opartego na APEX, który jest dostępny w wersjach Androida 10 (i nowszych).

Uwaga: aby wdrożyć ten mechanizm, konieczne jest ponowne uruchomienie systemu.

Źródła informacji o czasie (strefie czasowej) w samochodach

Urządzenia z Androidem zarządzają czasem w formacie czasu uniksowego na poziomie systemu, stosują odpowiednie przesunięcie strefy czasowej, a następnie przekształcają wartość na czas lokalny, aby wyświetlić ją użytkownikom. Identyfikator strefy bieżącego użytkownika (często nazywany identyfikatorem Olsona) jest przechowywany jako ustawienie. Na przykład Europe/London.

Większość mechanizmów opisanych poniżej dotyczy informacji o czasie. Celem tych standardów jest podawanie użytkownikom aktualnego czasu, a nie opisywanie obowiązujących reguł strefy czasowej. Aby określić rzeczywistą strefę czasową, urządzenie musi najpierw przeanalizować takie czynniki jak kraj, przesunięcie i przesunięcie czasu letniego, a dopiero potem ustawić identyfikator strefy.

Ten proces może być trudny. Na podstawie dostępnych informacji trudno jest określić, co było wcześniej. Na przykład strefa czasowa America/Denver obowiązuje w czasie letnim, ale w tym okresie jest dostosowywana do czasu letniego w górach (MDT), podczas gdy strefa America/Phoenix nadal rozpoznaje MDT.

Radio komórkowe

Informacje systemowe (SI) są istotnym aspektem interfejsu radiowego Long-Term Evolution (LTE), który jest przesyłany przez stację bazową (BS) za pomocą kanału sterowania transmisją (BCCH). Specyfikacja 3GPP TS 36.331 określa blok informacji systemowych typu 16 (SIB16), który zawiera informacje związane z GPS i uniwersalnym czasem koordynowanym (UTC), lokalnym przesunięciem czasu, a także informacje o czasie letnim.

Podobne funkcje są dostępne w sieciach 2G i 3G, w których można transmitować informacje o identyfikatorze sieci i strefie czasowej (NITZ) (szczegółowe informacje znajdziesz w 3GPP TS 22.042). Inne standardy radiowe sieci komórkowych mają podobne funkcje.

Niestety większość standardów ma wspólną cechę, czyli wysyłanie tych informacji jest opcjonalne, więc nie są one powszechnie dostępne we wszystkich sieciach.

Zalety Wady
  • Jeśli to możliwe, podaje większość potrzebnych informacji.
  • Prostota, która jest już obsługiwana przez Androida, gdy radio komórkowe jest udostępniane jako telefon, a nie tylko jako modem do transmisji danych.
  • Nie wymaga połączenia z internetem.
  • Nie ma gwarancji, że informacje są transmitowane ani że stacja bazowa jest prawidłowo skonfigurowana.

  • W regionach przygranicznych może odbierać sygnał z wieży komórkowej (w roamingu) w sąsiednim kraju i potencjalnie przekazywać nieprawidłową strefę czasową.

  • W niektórych lokalizacjach aktualizacje mogą potrwać kilka godzin, a nawet dni.

Protokół czasu sieciowego

Protokół NTP (Network Time Protocol) jest często używany do uzyskiwania stosunkowo dokładnych informacji o czasie epoki systemu Unix. Android obsługuje synchronizację czasu systemowego z czasem serwera NTP, jeśli można go udostępnić klientom RadioManager za pomocą ogólnych metadanych RadioTuner.getParameters(). NTP aktualizuje czas systemowy, gdy jest on niezsynchronizowany, a operator nie dostarczył ostatnio aktualizacji NITZ. Jeśli użytkownik włączy tę opcję, gdy NITZ nie jest dostępny, system natychmiast sprawdzi czas sieciowy.AUTO_TIME

Zalety Wady

Prostota, obsługiwana przez Androida.

  • Niekompletne, NTP podaje tylko jedną potrzebną wartość (czas). Nawet w najlepszym przypadku protokół NTP nie może podać strefy czasowej.

  • Wymaga połączenia z internetem.

Tuner radiowy

Korzystanie z wbudowanego tunera do pobierania informacji o czasie i strefie czasowej jest atrakcyjne, ale wiąże się z wyzwaniami. Liczne standardy transmisji radiowej określają opcje udostępniania żądanych informacji. Ogólnie rzecz biorąc, tuner radiowy zapewnia te same informacje co radio komórkowe.

ETSI EN 300 401 V1.4.1 (2006-06), sekcja 8.1 określa funkcje informacji o usługach, które dostarczają dodatkowych informacji o usługach zarówno w przypadku programów audio, jak i danych dla systemów cyfrowego radia DAB. W sekcji 8.1.3 zdefiniowano format czasu i daty oraz informacje o kraju i lokalnym przesunięciu czasu.

Podobnie w przypadku systemu danych radiowych (RDS) powszechnie stosowanego w tunerach FM sekcja 3.1.5.6 normy EN 50067 określa format czasu zegarowego i danych (przesyłanych raz na minutę). Dodatkowo w ramach przesyłanego identyfikatora programu można też pobrać rozszerzony kod kraju (ECC).

HD Radio zawiera odpowiednie opcje w ramach specyfikacji HD Radio™ Air Interface Design Description Station Information Service Transport w sekcji Station Information Service (SIS) Parameter Message (MSG ID 0111). W sekcji 5 wyraźnie określono słowa ostrzegawcze, których należy przestrzegać podczas próby korzystania z obsługi zegara w transmisji. Ta sama zasada dotyczy również innych systemów:

… te dane opisują lokalne zwyczaje w miejscu nadawcy, które mogą, ale nie muszą być takie same jak lokalne zwyczaje w miejscu odbiorcy. W pobliżu granic stref czasowych konsumenci mogą odbierać wiele stacji dostarczających różne dane. Dlatego te dane są podawane tylko jako wskazówki, których interpretacja i wykorzystanie powinny być dokonywane według uznania klienta i pod jego kontrolą. ..."

W przypadku radia HD nadawanie tych informacji jest opcjonalne i nie należy polegać wyłącznie na nich.

Zalety Wady
  • Zwykle dostępny w ramach różnych regionalnych standardów radia.
  • Nie wymaga połączenia z internetem.
  • Android nie obsługuje tej funkcji od razu po wyjęciu z pudełka.
  • Wymaga włączenia tunera (przynajmniej od czasu do czasu w tle), aby niezawodnie wykrywać informacje.
  • Niezawodność zależy od nadawcy.

Wskazówki dotyczące implementacji

Android obsługuje synchronizację czasu systemowego z czasem serwera NTP, jeśli może być udostępniany klientom RadioManager. Zalecanym rozwiązaniem jest skorzystanie z funkcji rozszerzenia dostawcy. Wdrożenie tej funkcji musi nastąpić w warstwie abstrakcji sprzętu (HAL), po czym może być udostępniana klientom RadioManager za pomocą ogólnej metody RadioTuner.getParameters().

Aby rozwiązanie pozostało niezawodne, odbiorca tego rozszerzenia dostawcy musi sprawdzić, czy HAL obsługuje tę funkcję (nie zakładaj, że ona istnieje). Ciągi parametrów wywołania getParameters muszą być uporządkowane, aby można było ich jednoznacznie używać u różnych dostawców. Na przykład użyj przestrzeni nazw organizacji, dodając do niej odpowiednią domenę, np. com.me.timezoneTuner.currenttimezone.

Ze względu na to, że informacje są oparte na zdarzeniach, warto używać wywołania zwrotnego RadioTuner.Callback.onParametersUpdated() do ich odbierania. Jeśli ta funkcja ma być konfigurowalna, zaprojektuj zestaw niestandardowych procedur na podstawie setParameters. Na przykład:

com.me.timezoneTuner.currenttimezoneEvent.enable

Samodzielnie globalny system nawigacji satelitarnej (GNSS) może podawać tylko dokładne informacje o czasie i pozycji.

Geolokacja

Rozwiązaniem tego problemu jest wykonanie geokodowania zwrotnego i określenie kraju oraz strefy czasowej na podstawie pozycji. GNSS to oczywisty (i najlepszy pod względem jakości) wybór informacji o lokalizacji w pojeździe. Interfejs Time Zone API od Google zapewnia wszystko, co jest potrzebne do przeprowadzenia wymaganej konwersji. Oczywiście wymagane jest połączenie z internetem. Zapewnienie prywatności użytkowników musi być priorytetem podczas wdrażania rozwiązania online. Wymagane jest uzyskanie zgody użytkownika na pokrycie kosztów wykorzystania danych (lub jej brak).

Można stworzyć odpowiednie rozwiązanie do użytku w trybie offline. Lokalna baza danych map o rozdzielczości wystarczającej do dokładnego określenia kraju i strefy czasowej może zmieścić się w pamięci pojazdu. Dzięki temu i w pełni wdrożonej strategii aktualizowania w razie potrzeby informacji o strefie czasowej (i kraju) można przeprowadzić geokodowanie zwrotne kraju lub strefy czasowej na podstawie pozycji GNSS uzyskanej z podsystemu lokalizacji.

Zalety Wady
  • może jednoznacznie określić prawidłową strefę czasową;
  • Nie wymaga połączenia z internetem (w przypadku lokalnej bazy danych).
  • Działa niezawodnie w większości sytuacji na drodze.
  • Android nie obsługuje tej funkcji od razu po wyjęciu z pudełka.
  • Jeśli pojazd znajduje się w pomieszczeniu lub w miejscu zadaszonym, gdzie podczas wstępnej konfiguracji nie jest możliwy dobry odbiór sygnału z satelitów GNSS, nie można uzyskać dokładnych informacji o czasie, lokalizacji i strefie czasowej.
  • Lokalna baza danych wymaga mechanizmu aktualizacji.
  • Złożoność wdrożenia.

Telefon połączony przez Bluetooth, Wi-Fi lub USB

Do uzyskiwania danych o godzinie i strefie czasowej można używać kilku technologii. Na wszystkich telefonach musi być zainstalowana para aplikacji niestandardowych i aplikacji towarzyszących – zarówno na telefonie, jak i w systemie informacyjno-rozrywkowym w pojeździe (IVI). Następnie można zsynchronizować czas w wybranym odstępie. Na przykład po nawiązaniu połączenia i wykryciu przez telefon nowej strefy czasowej.

Niektóre telefony obsługujące technologię Bluetooth Low Energy (BLE) umożliwiają pobieranie czasu za pomocą charakterystyki GATT Current Timespecyfikacji profilu Current Time Service 1.1. Ta opcja nie obejmuje jednak wystarczająco dużego segmentu rynku, aby można było na niej polegać wyłącznie.

Zalety Wady
  • Nie wymaga połączenia z internetem.
  • Zmiany strefy czasowej wykryte przez telefon mogą być przekazywane do jednostki głównej.
  • Android nie obsługuje tej funkcji od razu po wyjęciu z pudełka.
  • Działa tylko wtedy, gdy telefon jest połączony z jednostką główną.
  • Czas jest tak dobry lub zły, jak to, co zapewnia telefon.
  • Wdrożenie jest skomplikowane.
  • Nie wszystkie telefony obsługują profil BLE GATT Current Time Service.

Korzystanie ze źródeł

Każdy dostawca urządzeń musi określić, jak wysoki próg należy ustawić i które ścieżki użytkownika uznać za najważniejsze. Tylko dzięki jasnemu zrozumieniu pożądanych kluczowych wrażeń użytkownika można podjąć najlepszą decyzję. W większości przypadków dostawcy muszą rozważyć kompromis między wygodą a złożonością wdrożenia.

Każda z opisanych powyżej opcji ma swoje zalety i wady. Na przykład należy podjąć kluczową decyzję projektową dotyczącą tego, jak duża odporność w porównaniu z okazjonalnym nieprawidłowym wyświetlaniem czasu jest akceptowalna i jak zarządzać wadami. W pełni automatyczne rozwiązanie, które powinno dobrze działać we wszystkich scenariuszach, ale musi opierać się na połączeniu kilku źródeł informacji. Żadna pojedyncza opcja nie może zapewnić 100% dostępności.

Opcja konfiguracji ręcznej jako tymczasowe rozwiązanie awaryjne jest łatwa do wdrożenia i w praktyce może być wystarczająca dla wielu użytkowników.