Dokładne wyświetlanie czasu jest podstawową funkcją systemu multimedialnego w samochodzie. Może się to wydawać banalnie proste, zwłaszcza gdy oczekiwania dotyczące zarządzania czasem i strefami czasowymi są niskie i muszą być spełnione, ale czas szybko staje się skomplikowany, gdy trzeba wyświetlać niezawodnie dokładną datę i godzinę bez ręcznej interwencji.
Wszystkie zegary czasu rzeczywistego używane zwykle w systemach na chipie (SoC) mają pewną tendencję do dryftu, która narasta z czasem i może prowadzić do znacznego błędu, jeśli nie zostanie skorygowana. Poza tym oczekiwania użytkowników dotyczące prawidłowego wyświetlania czasu lokalnego są wysokie, dlatego należy wziąć pod uwagę poprawną różnicę czasu względem czasu uniwersalnego (UTC).
Informacje o strefie czasowej, a także stosowanie czasu letniego mogą ulec zmianie w trakcie oczekiwanego okresu użytkowania pojazdu. Na przykład po wielu latach stosowania czasu letniego Brazylia zdecydowała się nie wprowadzać tego czasu w 2019 roku.
Android zapewnia infrastrukturę potrzebną do negocjowania komplikacji związanych z zarządzaniem regułami strefy czasowej. Więcej informacji znajdziesz w artykule Reguły stref czasowych, który umożliwia producentom urządzeń OEM przesyłanie na urządzenia zaktualizowanych danych o regułach stref czasowych bez konieczności aktualizacji systemu. Ten mechanizm umożliwia:
- Użytkownicy otrzymują aktualne aktualizacje (co wydłuża okres przydatności urządzenia z Androidem).
- OEM mogą testować aktualizacje strefy czasowej niezależnie od aktualizacji obrazu systemu.
Uwaga: system AAOS 10 nie obsługuje mechanizmu aktualizacji modułów opartego na APEX, który jest dostępny w wersjach Androida 10 (i wyższych).
Uwaga: aby wdrożyć ten mechanizm, musisz ponownie uruchomić system.
Źródła informacji o czasie (strefa) w samochodach
Urządzenia z Androidem zarządzają czasem w formie czasu Unixa na poziomie systemu, stosują odpowiedni przesunięcie strefy czasowej, a następnie konwertują wartość na czas lokalny, aby wyświetlać go użytkownikom. Identyfikator strefy bieżącego użytkownika (często nazywany identyfikatorem Olsona) jest przechowywany jako ustawienie. Na przykład Europa/Londyn.
Większość mechanizmów opisanych poniżej dotyczy informacji o czasie. Celem tych standardów jest dostarczanie użytkownikom aktualnej godziny, a nie opisywanie obowiązujących zasad stref czasowych. Aby określić rzeczywistą strefę czasową, urządzenie musi najpierw uwzględnić takie czynniki, jak kraj, przesunięcie i czas letni, a dopiero potem ustawić identyfikator strefy.
Może to być trudne. Odtwarzanie na podstawie dostępnych informacji może być niejednoznaczne. Na przykład reguła strefy czasowej America/Denver uwzględnia czas letni, ale latem przechodzi na Mountain Daylight Time (MDT), podczas gdy America/Phoenix nadal rozpoznaje MDT.
Radio komórkowe
Informacje o systemie (SI) są istotnym elementem interfejsu radiowego Long-Term Evolution (LTE), który jest przesyłany przez stację bazową (BS) przez kanał kontroli transmisji (BCCH). 3GPP TS 36.331 określa typ SystemInformationBlockType16 (SIB16), który zawiera informacje związane z GPS i uniwersalnym czasem koordynowanym (UTC), przesunięciem czasu lokalnego, a także informacje o czasie letnim.
Podobną funkcję można znaleźć w sieciach 2G i 3G, w których można nadawać informacje o tożsamości sieci i strefie czasowej (NITZ) (szczegółowe informacje znajdziesz w standardzie 3GPP TS 22.042). Inne standardy radiowe sieci komórkowych mają równoważne funkcje.
Niestety w przypadku większości standardów wysyłanie tych informacji jest opcjonalne, więc nie jest dostępne we wszystkich sieciach.
Zalety | Wady |
---|---|
|
|
Protokół sieciowy czasu
Do uzyskiwania stosunkowo dokładnych informacji o czasie Unixa często używa się protokołu sieciowego NTP. 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 się rozsynchronizuje, a operator nie przesłał ostatnio aktualizacji NITZ. Jeśli użytkownik włączy AUTO_TIME
, gdy usługa NITZ jest niedostępna, system natychmiast sprawdzi czas sieci.
Zalety | Wady |
---|---|
Prostota, obsługa na Androidzie. |
|
Tuner radiowy
Korzystanie z wbudowanego tunera do pobierania informacji o czasie i strefie czasowej jest kuszące, ale wiąże się z pewnymi wyzwaniami. Wiele standardów nadawania radiowego określa opcje wyświetlania odpowiednich informacji. Ogólnie rzecz biorąc, tuner radia nadawczego dostarcza 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łudze, które zawierają dodatkowe informacje 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 daty i godziny oraz informacje dotyczące kraju i przesunięcia czasu lokalnego.
Podobnie w przypadku systemu Radio Data System (RDS) powszechnie stosowanego w tunerach FM w sekcji 3.1.5.6 standardu EN 50067określonego jest format czasu i danych (przesyłanych raz na minutę). Dodatkowo w ramach przesyłanej identyfikacji programu można pobrać rozszerzony kod kraju (ECC).
Radio HD zawiera odpowiednie opcje w ramach specyfikacji HD Radio™ Air Interface Design Description Station Information Service Transport w komunikacie o parametrach usługi informacyjnej stacji (SIS) (identyfikator MSG 0111). Sekcja 5 zawiera wyraźne ostrzeżenia, których należy przestrzegać podczas próby korzystania z funkcji zegara w transmisji. Ta sama zasada dotyczy również innych systemów:
... te dane opisują lokalne zwyczaje w miejscu, w którym znajduje się nadawca, które mogą, ale nie muszą być takie same jak lokalne zwyczaje w miejscu odbiorcy. W pobliżu granic stref czasowych konsumenci mogą odbierać sygnał z wielu stacji, które dostarczają różnych danych. Dlatego te dane są podawane tylko jako wskazówki, których interpretacja i wykorzystanie powinny być uznanikowe i podlegające kontroli klienta. ..." |
Ponadto w przypadku HD Radio transmisja tych informacji jest opcjonalna i nie należy polegać wyłącznie na tych danych.
Zalety Wady- Zwykle dostępne w różnych regionalnych standardach radia.
- Nie wymaga połączenia z internetem.
- Android nie obsługuje tego domyślnie.
- Wymaga włączenia tunera (przynajmniej od czasu do czasu w tle), aby można było 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żna go udostępnić klientomRadioManager
. Zalecane rozwiązanie to skorzystanie z funkcji rozszerzenia dostawcy.
Implementacja tej funkcji musi nastąpić na poziomie warstwy abstrakcji sprzętowej (HAL), po czym można ją udostępnić klientom RadioManager
za pomocą ogólnej metody RadioTuner.getParameters()
.
Aby rozwiązanie było niezawodne, użytkownik rozszerzenia dostawcy musi sprawdzić, czy HAL obsługuje tę funkcję (nie zakładaj, że tak jest). Ciągi parametrów wywołania getParameters
muszą być uporządkowane w sposób umożliwiający jednoznaczne użycie w przypadku różnych dostawców. Na przykład możesz użyć przestrzeni nazw organizacji, dodając do niej odpowiednią domenę, na przykład com.me.timezoneTuner.currenttimezone
.
Ze względu na charakter tych informacji, który jest powiązany z zdarzeniami, warto użyć funkcji wywołania zwrotnego RadioTuner.Callback.onParametersUpdated()
do odbierania tych informacji. Jeśli ta funkcja ma być konfigurowalna, zaprojektuj zestaw niestandardowych rutyn na podstawie elementu setParameters
. Na przykład:
com.me.timezoneTuner.currenttimezoneEvent.enable
Global Navigation Satellite System
Globalny system nawigacji satelitarnej (GNSS) może samodzielnie dostarczać tylko dokładnych informacji o czasie i pozycji.
Geolokacja
Rozwiązaniem tego problemu jest wykonanie odwrotnego geokodowania i określenie kraju oraz strefy czasowej na podstawie położenia. GNSS to oczywisty (i najlepszy pod względem jakości) wybór informacji o lokalizacji w samochodzie. Interfejs Time Zone API od Google zapewnia wszystko, czego potrzebujesz 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. Konieczne jest uzyskanie zgody użytkownika na akceptację kosztów korzystania z danych (lub odrzucenie takiej zgody).
Można stworzyć odpowiednie rozwiązanie do użytku offline. Lokalna baza danych map o wystarczającej rozdzielczości, aby dokładnie określić kraj i strefę czasową, może zmieścić się w pamięci pojazdu. Dzięki temu i w ramach wdrożenia strategii aktualizacji informacji o strefach czasowych (i krajach) w miarę potrzeby można odwrotnie zgeokodować strefę czasową/kraj na podstawie pozycji GNSS uzyskanej z podsystemu lokalizacji.
Zalety | Wady |
---|---|
|
|
telefon połączony przez Bluetooth, Wi-Fi lub USB;
Aby uzyskać dane o czasie i strefie czasowej, można użyć telefonu użytkownika i kilku technologii. W przypadku wszystkich telefonów na telefonie i w systemie informacyjno-rozrywkowym pojazdu musi być zainstalowana para aplikacji niestandardowych i dodatkowych. Następnie można zsynchronizować czas w wybranym interwale. Na przykład po nawiązaniu połączenia i wykryciu przez telefon nowej strefy czasowej.
Niektóre telefony, które obsługują Bluetooth Low Energy (BLE), umożliwiają pobieranie czasu za pomocą charakterystyki GATT Current Time i specyfikacji profilu usługi Current Time 1.1. Ta opcja nie obejmuje jednak wystarczająco dużego segmentu rynku, aby można było się na nim opierać.
Zalety | Wady |
---|---|
|
|
Używanie źródeł
Każdy sprzedawca urządzeń musi określić, jak wysoko ustawić poprzeczkę i które ścieżki użytkownika uznać za najważniejsze. Najlepsze decyzje można podjąć tylko wtedy, gdy dokładnie rozumie się oczekiwane kluczowe wrażenia użytkowników. 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ąć kluczowy wybór dotyczący tego, jak duża odporność na błędy w porównaniu z nieprawidłowym wyświetlaniem czasu jest akceptowalna i jak radzić sobie z niedogodnościami. W pełni automatyczne rozwiązanie, które ma działać dobrze we wszystkich scenariuszach, musi być oparte na kombinacji kilku źródeł informacji. Żadna opcja nie zapewnia 100% dostępności.
Opcja ręcznej konfiguracji jako tymczasowe rozwiązanie zastępcze jest łatwa do wykonania i w praktyce może być wystarczająca dla wielu użytkowników.