Dokładne wyświetlanie czasu to podstawowa funkcja 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 wyświetlanie wiarygodnie dokładnej daty i czasu musi odbywać się bez ręcznej interwencji.
Wszystkie zegary czasu rzeczywistego używane zwykle w systemach na chipie (SoC) mają pewną wartość odchylenia, która narasta z czasem i może prowadzić do znacznego błędu, jeśli nie zostanie skorygowana. Dodatkowo, ponieważ użytkownicy oczekują dokładnego wyświetlania czasu lokalnego, należy wziąć pod uwagę poprawną różnicę czasu względem uniwersalnego czasu koordynowanego (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: AAOS 10 nie obsługuje mechanizmu aktualizacji modułów opartych 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 czasie Unixa na poziomie systemu, stosują odpowiedni przesunięcie strefy czasowej, a następnie konwertują wartość na czas lokalny do wyświetlania 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 stosuje czas górski (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 sieci 2G i 3G, gdzie 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ł niedawno aktualizacji NITZ. Jeśli użytkownik włączy AUTO_TIME
, gdy serwer NITZ jest niedostępny, 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 50067 zdefiniowano format czasu i danych (przesyłanych raz na minutę). Dodatkowo w ramach przesyłanej identyfikacji 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 komunikacie o parametrach usługi informacyjnej stacji (SIS) (identyfikator MSG 0111). W sekcji 5 wyraźnie podane są słowa ostrzegawcze, 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 się na niej opierać.
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 znaków 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 za pomocą przestrzeni nazw organizacji z odpowiednią domeną, na przykład com.me.timezoneTuner.currenttimezone
.
Ze względu na charakter tych informacji, zalecane jest używanie 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
. 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, 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. Konieczne jest uzyskanie zgody użytkownika na akceptację kosztów korzystania z danych (lub odmowę 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 Lokalizacja.
Zalety | Wady |
---|---|
|
|
telefon połączony przez Bluetooth, Wi-Fi lub USB;
Aby uzyskać dane dotyczące czasu i strefy 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ą właściwości 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 niej opierać.
Zalety | Wady |
---|---|
|
|
Używanie źródeł
Każdy sprzedawca urządzeń musi określić, jak wysoką poprzeczkę ustawić i które procesy użytkownika uznać za najważniejsze. Najlepsze decyzje można podjąć tylko wtedy, gdy dokładnie pozna 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ą implementacji.
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 czasem wyświetlania 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.