Powiadomienia w systemie operacyjnym Android Automotive

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.
Automatyczne odtwarzanie i przyciski wyciszania powiadomień o wiadomościach

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ń

RemoteViews i 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:

  • Jeśli powiadomienie ma działanie „Odpowiedz” (Action), to Action spełnia te wymagania:

    • Działanie semantyczne jest ustawione na Action.SEMANTIC_ACTION_REPLY.
    • Action wskazuje, że po uruchomieniu nie wyświetla żadnego interfejsu użytkownika.
    • Action zawiera pojedynczy RemoteInput.

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 playback powiadomienia. 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ę setMediaSession z 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_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 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:

  • 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

addAction()

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ń.

createBigContentView()

createContentView()

createHeadsUpContentView()

setContent()

setCustomBigContentView()

setCustomContentView()

setCustomHeadsUpContentView()

Działanie bez efektu RemoteViews i widoki treści niestandardowych nie są obsługiwane.

setBadgeIconType()

setNumber()

Działanie bez efektu Kropki powiadomień nie są obsługiwane.

setChronometerCountDown()

setUsesChronometer()

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.

setOngoing() sprawia, że powiadomienie z ostrzeżeniem jest nieusuwalne tylko wtedy, gdy dotyczy połączenia przychodzącego. Aby powiadomienie z ostrzeżeniem o połączeniu przychodzącym było nieusuwalne musi spełniać określone wymagania.

Kierowcy mogą zamykać wszystkie inne typy powiadomień z ostrzeżeniem.

setPublicVersion()

setVisibility()

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

Notification.BigPictureStyle

Notification.BigTextStyle

Notification.InboxStyle

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:

Notification.CarExtender

Notification.WearableExtender

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.