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ć też wyświetlane jako
powiadomienia z ostrzeżeniem na ekranie. Aby tworzyć powiadomienia na
system operacyjny Android Automotive, używasz tego samego NotificationBuilder interfejsu API co w przypadku innych urządzeń. Jednak aby zapewnić bezpieczeństwo kierowców i
zminimalizować rozpraszanie uwagi, niektóre metody i klasy interfejsu API są ograniczone lub działają
inaczej.
Różnice w powiadomieniach w samochodach
Aby stworzyć bezpieczne środowisko 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 z użytkownikiem
- Ograniczenia dotyczące interfejsu użytkownika na podstawie stanu jazdy
Uproszczona interakcja z użytkownikiem
Aby kierowcy mogli skupić się na drodze, powiadomienia w samochodzie mają uproszczony model interakcji z użytkownikiem, który obejmuje te funkcje:
- Brak złożonych elementów sterujących
- Powiadomienia nie obsługują złożonych elementów sterujących, takich jak kliknięcie, aby rozwinąć powiadomienie, przytrzymanie powiadomienia w celu wyświetlenia dodatkowych opcji czy używanie elementów sterujących na podstawie gestów przesuwania.
- Dźwięki powiadomień
- Powiadomienia odtwarzają dźwięk tylko wtedy, gdy wywołują powiadomienie z ostrzeżeniem.
System operacyjny Android Automotive automatycznie dodaje przyciski Odtwórz i Wycisz do wszystkich powiadomień o wiadomościach zgodnych z samochodem.
- Odtwórz:odczytuje powiadomienie kierowcy za pomocą domyślnego asystenta cyfrowego użytkownika, takiego jak Gemini lub Asystent Google, albo domyślnego systemu zamiany tekstu na mowę w pojeździe.
Wycisz:uniemożliwia wyświetlanie powiadomień z ostrzeżeniem w przypadku przyszłych wiadomości w rozmowie przez resztę 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ń
RemoteViewsi widoki treści niestandardowych nie są obsługiwane. Ponadto nie są obsługiwane te style powiadomień:Jeśli aplikacja wyśle powiadomienie do systemu operacyjnego Android Automotive za pomocą jednego z tych stylów powiadomień, wyświetli się tylko tekst podsumowania.
- Uproszczone zarządzanie kanałami powiadomień
System operacyjny Android Automotive nie obsługuje kanałów powiadomień ani powiązanych z nimi elementów interfejsu użytkownika, aby zmniejszyć częstotliwość wykonywania złożonych zadań zarządzania na urządzeniach Automotive.
Ograniczenia dotyczące interfejsu użytkownika na podstawie stanu jazdy
System operacyjny Android Automotive zawiera silnik ograniczeń interfejsu użytkownika. Producenci samochodów mogą używać tego silnika do ograniczania powiadomień na podstawie stanu jazdy samochodu w następujący sposób:
- Obcinanie ciągów powiadomień do określonej długości.
- Ukrywanie podsumowań wiadomości w przypadku powiadomień
CATEGORY_MESSAGE. - Ograniczanie liczby powiadomień, które mogą być wyświetlane w 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
- Grafika
Wymagania dotyczące zgodności w przypadku powiadomień o wiadomościach
Aby zapewnić spójne i jak najmniej rozpraszające wrażenia użytkownika, 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.
Ma działanie „Oznacz jako przeczytane” (
Action), które spełnia te wymagania:- Działanie semantyczne jest ustawione na
Action.SEMANTIC_ACTION_MARK_AS_READ. Actionwskazuje, że po uruchomieniu nie wyświetla żadnego interfejsu użytkownika.
- Działanie semantyczne jest ustawione na
Jeśli powiadomienie ma działanie „Odpowiedz” (
Action), toActionspełnia te wymagania:- Działanie semantyczne jest ustawione na
Action.SEMANTIC_ACTION_REPLY. Actionwskazuje, że po uruchomieniu nie wyświetla żadnego interfejsu użytkownika.Actionzawiera 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 z ostrzeżeniem. Powiadomienia pozostają w Centrum powiadomień przez cały czas jazdy.
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 jeden lub oba z tych sposobów:
- Przesunięcie 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 przypadku 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ń
Te powiadomienia nie pojawiają się w Centrum powiadomień:
Media playbackpowiadomienia. System operacyjny Android Automotive zbiera informacje o odtwarzaniu multimediów i wyświetla je w specjalnym miejscu w interfejsie użytkownika. Pamiętaj, że aby system rozpoznał powiadomienie jako odtwarzanie multimediów, musisz wywołać metodęsetMediaSessionz tokenem innym niż null.- Powiadomienia o nawigacji zakręt po zakręcie w przypadku
CATEGORY_NAVIGATION. - Powiadomienia o usługach działających na pierwszym planie w przypadku aplikacji z uprawnieniami systemowymi i aplikacji, które
są podpisane kluczem platformy, których poziom ważności jest niższy niż
IMPORTANCE_DEFAULT.
Powiadomienia z ostrzeżeniem
Powiadomienia z ostrzeżeniem pojawiają się jako karta powiadomienia u góry ekranu. Powiadomienie z ostrzeżeniem przyciąga uwagę kierowcy, dlatego wywołuj je tylko wtedy, gdy informacje są krytyczne dla jazdy, wymagają szybkiego działania i można na nie zareagować. Tylko niektóre kategorie powiadomień mogą wywoływać powiadomienia z ostrzeżeniem.
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ń z ostrzeżeniem 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_HIGHlub wyższą. - Wszystkie inne aplikacje
Aplikacja może wywołać powiadomienie z ostrzeżeniem, ustawiając ważność kanału powiadomień na
IMPORTANCE_HIGHlub wyższą i sprawdzając, czy 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 z ostrzeżeniem zostanie automatycznie zamknięte po 8 sekundach, z wyjątkiem tych przypadków:
Powiadomień z ostrzeżeniem o niektórych połączeniach przychodzących nie można zamknąć. Powiadomienie z ostrzeżeniem pozostaje widoczne, dopóki kierowca nie odbierze połączenia lub nie zostanie ono zakończone. Aby powiadomienie z ostrzeżeniem o połączeniu przychodzącym było nieusuwalne, musi spełniać te wymagania:
- Należy do
CATEGORY_CALL. - Ustawia intencję pełnoekranową.
- Jest oznaczane jako trwające za pomocą metody
setOngoing().
- Należy do
Powiadomienia z ostrzeżeniem pozostają widoczne, jeśli aplikacja zaktualizuje powiadomienie w ciągu 8 sekund.
Gdy powiadomienie z ostrzeżeniem zostanie zamknięte, pojawi się w
Centrum powiadomień, chyba że jest to powiadomienie CATEGORY_NAVIGATION.
Zmiany i ograniczenia interfejsu API powiadomień w przypadku samochodów
W tej sekcji podsumowujemy różnice w przypadku każdej klasy, w której interfejs API powiadomień działa inaczej lub ma ograniczenia w systemie operacyjnym Android Automotive.
Notification.Builder
Tabele 1 i 2 opisują 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 bez efektu | Notification.MessagingStyle powiadomienia muszą dodawać
działania określone w
wymaganiach dotyczących zgodności. Wszystkie
dodatkowe działania, które zostaną dodane, nie będą renderowane jako przyciski powiadomień. |
|
|
Działanie bez efektu | RemoteViews
i widoki treści niestandardowych nie są obsługiwane. |
|
|
Działanie bez efektu | Kropki powiadomień nie są obsługiwane. |
|
|
Działanie bez efektu | Odliczanie nie jest obsługiwane. |
setColorized() |
Zmieniono ograniczenia |
Aplikacje podpisane przez platformę: konfigurowalne; domyślnie dozwolone. Aplikacje z uprawnieniami systemowymi: konfigurowane przez platformę; domyślnie niedozwolone. Wszystkie inne aplikacje: konfigurowane przez platformę; domyślnie niedozwolone. |
setFullScreenIntent() |
Zmieniono zachowanie | Nie uruchamia automatycznie intencji. |
setLargeIcon() |
Zmieniono zachowanie | Duże ikony są wyświetlane po prawej stronie powiadomienia. |
setLights() |
Działanie bez efektu | Urządzenia z systemem operacyjnym Android Automotive nie mają diod LED. |
setOngoing() |
Zmieniono zachowanie |
Działanie jest inne, gdy powiadomienie wywołuje też powiadomienie z ostrzeżeniem.
Kierowcy mogą zamykać wszystkie inne typy powiadomień z ostrzeżeniem. |
|
|
Działanie bez efektu | Tryb prywatny nie jest obsługiwany. |
setSettingsText() |
Działanie bez efektu | Powiadomienia nie obsługują elementów interfejsu, które prowadzą do ustawień aplikacji. Kierowcy mogą uzyskać dostęp do ustawień aplikacji w aplikacji. |
setTicker() |
Działanie bez efektu | Tekst paska powiadomień nie jest obsługiwany. |
Tabela 2. Zmiany w klasach zagnieżdżonych w przypadku Notification.Builder
| Klasy zagnieżdżone | Efekt | Opis |
|---|---|---|
|
|
Nieużywane | Wyświetla się tylko tekst podsumowania. Szczegółowe powiadomienia w tych stylach nie są obsługiwane. |
Notification.BubbleMetadata |
Nieużywane | Dymki nie są obsługiwane. |
Notification.MediaStyle |
Ukryte | Powiadomienia w tym stylu są ukryte. System operacyjny Android Automotive zarządza interakcjami z interfejsem użytkownika w przypadku powiadomień i odtwarzania multimediów. |
Notification.MessagingStyle |
Zmieniono zachowanie |
Powiadomienia w tym stylu mają te różnice:
|
|
|
Nieużywane | Rozszerzenia nie są obsługiwane. |
Notification.Action.Builder
Tabela 3 opisuje zmiany i ograniczenia 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 zachowanie | Ikony określone w konstruktorach publicznych są ignorowane. |
addRemoteInput |
Zmieniono zachowanie | Aby zminimalizować rozpraszanie uwagi kierowcy, asystent cyfrowy, taki jak Gemini lub Asystent Google, wstawia odpowiedź na wiadomość za użytkownika. Użytkownicy nie mogą pisać wiadomości. |
setAllowGeneratedReplies |
Działanie bez efektu | Inteligentne odpowiedzi nie są obsługiwane. |