Powiadomienia dostarczają kierowcom krótkich, aktualnych informacji o zdarzeniach z aplikacji, gdy nie jest ona używana. Powiadomienia mogą pojawiać się w centrum powiadomień, a niektóre z nich mogą być wyświetlane jako powiadomienia wyskakujące. Aby tworzyć powiadomienia na system operacyjny Android Automotive, używaj tego samego interfejsu API NotificationBuilder
, którego używasz w przypadku innych urządzeń. Aby jednak zapewnić bezpieczeństwo kierowców i zminimalizować rozproszenie uwagi, niektóre metody i klasy interfejsu API są ograniczone lub działają inaczej.
Różnice w powiadomieniach w samochodach
Aby zapewnić bezpieczne warunki jazdy bez rozpraszania uwagi, powiadomienia w systemie operacyjnym Android Automotive różnią się od powiadomień na innych urządzeniach w następujący sposób:
- Uproszczona interakcja użytkownika
- Ograniczenia UX na podstawie stanu jazdy
Uproszczona interakcja użytkownika
Aby kierowcy mogli skupić się na drodze, powiadomienia w samochodzie mają uproszczony model interakcji z użytkownikiem, który obejmuje te funkcje:
- Brak skomplikowanych elementów sterujących
- Powiadomienia nie umożliwiają złożonych działań, takich jak kliknięcie w celu rozwinięcia powiadomienia, naciśnięcie i przytrzymanie powiadomienia w celu wyświetlenia dodatkowych opcji czy korzystanie z elementów sterujących na podstawie gestów przesuwania o określonej długości.
- Dźwięki powiadomień
- Powiadomienia odtwarzają dźwięk tylko wtedy, gdy wywołują powiadomienie wyskakujące.
System operacyjny Android Automotive automatycznie dodaje przyciski Odtwórz i Wycisz do wszystkich powiadomień z aplikacji do obsługi wiadomości, które są zgodne z samochodem.
- Odtwórz:odczytuje powiadomienie kierowcy za pomocą domyślnego asystenta cyfrowego użytkownika, np. Asystenta Google, lub domyślnego systemu zamiany tekstu na mowę w pojeździe.
Wycisz:zapobiega wyświetlaniu powiadomień w przyszłości w przypadku wszystkich wiadomości w rozmowie do końca jazdy. Powiadomienia o wiadomościach z wyciszonej rozmowy nadal pojawiają się w centrum powiadomień, a kierowca może też wyłączyć wyciszenie rozmowy w centrum powiadomień.
- Uproszczone opcje wyświetlania powiadomień
RemoteViews
i widoki treści niestandardowych nie są obsługiwane. Te style powiadomień nie są obsługiwane:BigPictureStyle
BigTextStyle
InboxStyle
ProgressStyle
Jeśli aplikacja wysyła powiadomienie do systemu operacyjnego Android Automotive w jednym z tych stylów powiadomień, wyświetlany jest tylko tekst podsumowania.
- Uproszczone zarządzanie kanałami powiadomień
Android Automotive OS nie obsługuje kanałów powiadomień ani powiązanych elementów interfejsu, aby ograniczyć występowanie złożonych zadań zarządzania na urządzeniach samochodowych.
Ograniczenia UX na podstawie stanu jazdy
System operacyjny Android Automotive zawiera silnik ograniczeń UX. Producenci samochodów mogą używać tego mechanizmu do ograniczania powiadomień na podstawie stanu jazdy samochodu w następujący sposób:
- Skracanie ciągów tekstowych powiadomień do określonej długości
- Ukrywanie podsumowań wiadomości w powiadomieniach z
CATEGORY_MESSAGE
- ograniczanie liczby powiadomień, które może wyświetlać Centrum powiadomień;
Obsługiwane typy zasobów
Domyślnie system operacyjny Android Automotive obsługuje ograniczony podzbiór typów zasobów, których można używać w przypadku powiadomień na innych urządzeniach. Ten podzbiór obejmuje te typy zasobów:
- Obiekty rysowalne
- Ikony
- Obrazy
Wymagania dotyczące zgodności powiadomień o wiadomościach
Aby zapewnić spójne i jak najmniej rozpraszające uwagę użytkownika wrażenia, powiadomienia o wiadomościach mają specjalne wymagania w systemie operacyjnym Android Automotive.
Powiadomienie o wiadomości jest zgodne z samochodem, jeśli spełnia te wymagania:
- Należy do kategorii
CATEGORY_MESSAGE
. - Używa stylu
Notification.MessagingStyle
. - Zawiera tylko nieprzeczytane wiadomości.
Musi zawierać przycisk „Oznacz jako przeczytane”
Action
, który spełnia te wymagania:- Działanie semantyczne jest ustawione na
Action.SEMANTIC_ACTION_MARK_AS_READ
. - Symbol
Action
oznacza, że po uruchomieniu nie wyświetla żadnego interfejsu.
- Działanie semantyczne jest ustawione na
Jeśli powiadomienie zawiera odpowiedź
Action
, toAction
spełnia te wymagania:- Działanie semantyczne jest ustawione na
Action.SEMANTIC_ACTION_REPLY
. - Symbol
Action
oznacza, że po uruchomieniu nie wyświetla żadnego interfejsu. Action
zawiera pojedynczyRemoteInput
.
- Działanie semantyczne jest ustawione na
Centrum powiadomień
Niemal wszystkie powiadomienia pojawiają się w Centrum powiadomień, nawet jeśli zostały też wywołane jako powiadomienia wyskakujące. Powiadomienia są wyświetlane w centrum powiadomień przez cały czas trwania przejazdu.
Kierowcy mogą wchodzić w interakcje z powiadomieniami w Centrum powiadomień. W zależności od producenta samochodu kierowcy mogą uzyskać dostęp do Centrum powiadomień na 1 lub 2 z tych sposobów:
- Przesuń palcem z góry ekranu w dół, podobnie jak w przypadku panelu powiadomień na innych urządzeniach.
- kliknięcie przycisku w interfejsie systemu;
Grupowanie powiadomień
Powiązane powiadomienia są automatycznie grupowane w centrum powiadomień, tak jak w panelu powiadomień na innych urządzeniach. Gdy jednak kierowca kliknie podsumowanie grupy w Centrum powiadomień, zamiast uruchomić PendingIntent
, grupa rozwinie się, aby wyświetlić wszystkie powiadomienia.
Powiadomienia, które nie pojawiają się w centrum powiadomień
W Centrum powiadomień nie pojawiają się te powiadomienia:
Media playback
powiadomienia. Informacje o trwającym odtwarzaniu multimediów są zbierane przez Androida Automotive OS i wyświetlane w odpowiednim miejscu w interfejsie użytkownika. Pamiętaj, że funkcjasetMediaSession
musi być wywoływana z tokenem o wartości innej niż null, aby powiadomienie zostało rozpoznane jako odtwarzanie multimediów.- Powiadomienia dotyczące szczegółowych wskazówek dojazdu dla
CATEGORY_NAVIGATION
. - Powiadomienia o usługach działających na pierwszym planie w przypadku aplikacji systemowych z uprawnieniami i aplikacji podpisanych kluczem platformy, których poziom ważności jest niższy niż
IMPORTANCE_DEFAULT
.
Powiadomienia z ostrzeżeniem
Powiadomienia typu Heads-up pojawiają się jako karta powiadomień u góry ekranu. Powiadomienie z ostrzeżeniem przyciąga uwagę kierowcy, dlatego należy je wywoływać tylko wtedy, gdy informacje są kluczowe dla jazdy, wymagają natychmiastowej reakcji i umożliwiają podjęcie działania. Powiadomienie heads-up może być wywoływane tylko przez niektóre kategorie powiadomień.
Producenci samochodów mogą zdecydować, czy zezwolić na wyświetlanie powiadomień z ostrzeżeniem, gdy otwarte jest Centrum powiadomień.
Jak aplikacje wywołują powiadomienia z ostrzeżeniem
Aplikacje mają różne wymagania dotyczące wywoływania powiadomień typu heads-up, w zależności od tego, czy mają uprawnienia systemowe.
- Aplikacje z uprawnieniami systemowymi i aplikacje podpisane kluczem platformy
- Aplikacja może wywołać powiadomienie z ostrzeżeniem, ustawiając ważność kanału powiadomień na
IMPORTANCE_HIGH
lub wyższą. - Wszystkie inne aplikacje
Aplikacja może wywołać powiadomienie z ostrzeżeniem, ustawiając ważność kanału powiadomień na
IMPORTANCE_HIGH
lub wyższą i upewniając się, że powiadomienie należy do jednej z tych kategorii:
Cykl życia powiadomienia z ostrzeżeniem
Gdy aplikacja wywoła powiadomienie z ostrzeżeniem, natychmiast pojawi się ono na ekranie samochodu. Jeśli kierowca nie podejmie żadnych działań, powiadomienie zniknie automatycznie po 8 sekundach, z wyjątkiem tych przypadków:
Powiadomień wyskakujących o niektórych połączeniach przychodzących nie można odrzucić. Pozostają one widoczne, dopóki kierowca nie odbierze połączenia lub nie zostanie ono zakończone. Aby powiadomienie o połączeniu przychodzącym kwalifikowało się jako powiadomienie typu heads-up, którego nie można odrzucić, musi spełniać te wymagania:
- Należą do:
CATEGORY_CALL
- Ustawianie intencji pełnoekranowej
- być oznaczony jako trwający za pomocą metody
setOngoing()
;
- Należą do:
Powiadomienia typu „heads-up” pozostaną, jeśli aplikacja zaktualizuje powiadomienie w ciągu 8 sekund.
Gdy odrzucisz powiadomienie typu heads-up, pojawi się ono w centrum powiadomień, chyba że jest to powiadomienie CATEGORY_NAVIGATION
.
Zmiany i ograniczenia dotyczące interfejsu Notification API w przypadku samochodów
W tej sekcji podsumowujemy różnice w przypadku poszczególnych klas, w których interfejs Notifications API działa inaczej lub ma ograniczenia w systemie operacyjnym Android Automotive.
Notification.Builder
W tabelach 1 i 2 opisano zmiany i ograniczenia interfejsu API w klasie Notification.Builder
.
Tabela 1. Zmiany w metodach publicznych w przypadku Notification.Builder
Metody publiczne | Efekt | Opis | ||
---|---|---|---|---|
|
Warunkowe działanie bezczynne | Powiadomienia Notification.MessagingStyle muszą zawierać działania określone w wymaganiach dotyczących zgodności. Wszelkie dodatkowe działania, które zostaną dodane, nie będą renderowane jako przyciski powiadomień. |
||
|
Brak działania | RemoteViews
i wyświetlenia treści niestandardowych nie są obsługiwane. |
||
|
Brak działania | Kropki powiadomień nie są obsługiwane. | ||
| Brak działania | Odliczanie nie jest obsługiwane. | ||
setColorized() |
Zmieniono ograniczenia |
Aplikacje podpisane przez platformę: można je skonfigurować; są domyślnie dozwolone. Aplikacje z uprawnieniami systemowymi: skonfigurowane przez platformę; domyślnie niedozwolone. Wszystkie inne aplikacje: skonfigurowane przez platformę; domyślnie niedozwolone. |
||
setFullScreenIntent() |
Zmieniono działanie | Nie uruchamia automatycznie intencji. | ||
setLargeIcon() |
Zmieniono działanie | Duże ikony są wyświetlane po prawej stronie powiadomienia. | ||
setLights() |
Brak działania | Urządzenia z systemem operacyjnym Android Automotive nie mają diod LED. | ||
setOngoing() |
Zmieniono działanie |
Zachowanie jest inne, gdy powiadomienie wywołuje też powiadomienie z ostrzeżeniem.
|
Brak działania | Tryb prywatny nie jest obsługiwany. |
setSettingsText() |
Brak działania | Powiadomienia nie obsługują elementów, które prowadzą do ustawień aplikacji. Kierowcy mogą uzyskać dostęp do ustawień aplikacji w samej aplikacji. | ||
setTicker() |
Brak działania | Tekst przewijany nie jest obsługiwany. |
Tabela 2. Zmiany w zagnieżdżonych klasach w przypadku Notification.Builder
Zagnieżdżone klasy | Efekt | Opis |
---|---|---|
|
Bez lampy | Wyświetlany jest tylko tekst podsumowania. Szczegółowe powiadomienia dotyczące tych stylów nie są obsługiwane. |
Notification.BubbleMetadata |
Bez lampy | Dymki nie są obsługiwane. |
Notification.MediaStyle |
Ukryte | Powiadomienia w tym stylu są ukryte. System operacyjny Android Automotive zarządza interakcjami użytkownika z interfejsem w przypadku powiadomień o multimediach i ich odtwarzania. |
Notification.MessagingStyle |
Zmieniono działanie |
Powiadomienia w tym stylu różnią się od innych tym, że:
|
|
Bez lampy | Wzmacniacze nie są obsługiwane. |
Notification.Action.Builder
Tabela 3 zawiera opis zmian i ograniczeń interfejsu API w klasie Notification.Action.Builder
.
Tabela 3 Zmiany w metodach publicznych w przypadku Notification.Action.Builder
Metody publiczne | Efekt | Opis |
---|---|---|
Konstruktory publiczne | Zmieniono działanie | Ikony określone w konstruktorach publicznych są ignorowane. |
addRemoteInput |
Zmieniono działanie | Aby zminimalizować rozproszenie uwagi kierowcy, asystent cyfrowy, taki jak Asystent Google, wstawia odpowiedź na wiadomość za użytkownika. Użytkownicy nie mogą pisać wiadomości. |
setAllowGeneratedReplies |
Brak działania | Inteligentna odpowiedź nie jest obsługiwana. |