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 wyskakujące. Aby tworzyć powiadomienia w systemie operacyjnym Android Automotive, używasz tego samego interfejsu NotificationBuilder API, co 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 ś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 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, długie naciśnięcie 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 z ostrzeżeniem.
Automatyczne przyciski odtwarzania i wyciszania powiadomień o wiadomościach

System operacyjny Android Automotive automatycznie dodaje przyciski OdtwórzWycisz do wszystkich powiadomień o wiadomościach zgodnych z samochodem.

  • Odtwórz: odczytuje powiadomienie kierowcy za pomocą domyślnego asystenta cyfrowego użytkownika, np. Gemini lub Asystenta Google, albo domyślnego systemu zamiany tekstu na mowę w samochodzie.
  • Wycisz:zapobiega wyświetlaniu powiadomień w formie wyskakujących okienek o wszystkich przyszłych wiadomościach 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. Dodatkowo nie są obsługiwane te style powiadomień:

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ń

System operacyjny Android Automotive nie obsługuje kanałów powiadomień ani powiązanych z nimi elementów interfejsu, aby ograniczyć częstość występowania zaawansowanych zadań zarządzania na urządzeniach Automotive.

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 powiadomień do określonej długości
  • Ukrywanie podsumowań wiadomości w powiadomieniach z 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
  • Obrazy

Wymagania dotyczące zgodności powiadomień o wiadomościach

Aby zapewnić spójne i jak najmniej rozpraszające uwagę 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.
  • Zawiera przycisk oznaczania jako przeczytane Action, który spełnia te wymagania:

  • Jeśli powiadomienie zawiera odpowiedź Action, to Action 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 pojedynczy element RemoteInput.

Centrum powiadomień

Niemal wszystkie powiadomienia pojawiają się w Centrum powiadomień, nawet jeśli zostały też wywołane jako powiadomienia wyskakujące. Powiadomienia pozostają 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 jeden lub oba z tych sposobów:

  • Przesuń palcem z góry ekranu w dół, podobnie jak w przypadku szuflady 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. Jeśli 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. System operacyjny Android Automotive zbiera informacje o odtwarzanych multimediach i wyświetla je w odpowiednim miejscu w interfejsie. Pamiętaj, że aby system rozpoznał powiadomienie jako odtwarzanie multimediów, musisz wywołać funkcję setMediaSession z tokenem o wartości innej niż null.
  • 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 wyświetlają się jako karta powiadomienia 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 z ostrzeżeniem 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 powiadomienia 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 zniknie automatycznie po 8 sekundach, z wyjątkiem tych przypadków:

  • Powiadomień z ostrzeżeniem 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 z ostrzeżeniem, którego nie można odrzucić, musi spełniać te wymagania:

  • Powiadomienia typu „heads-up” pozostaną, jeśli aplikacja zaktualizuje powiadomienie w ciągu 8 sekund.

Gdy odrzucisz powiadomienie z ostrzeżeniem, 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 każdej klasy, w której 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 dla Notification.Builder

Metody publiczne Efekt Opis

addAction()

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

createBigContentView()

createContentView()

createHeadsUpContentView()

setContent()

setCustomBigContentView()

setCustomContentView()

setCustomHeadsUpContentView()

Bezobsługowe RemoteViews i wyświetlenia treści niestandardowych nie są obsługiwane.

setBadgeIconType()

setNumber()

Bezobsługowe Kropki powiadomień nie są obsługiwane.

setChronometerCountDown()

setUsesChronometer()

Bezobsługowe 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 zachowanie Nie uruchamia automatycznie intencji.
setLargeIcon() Zmieniono zachowanie Duże ikony są wyświetlane po prawej stronie powiadomienia.
setLights() Bezobsługowe Urządzenia z systemem operacyjnym Android Automotive nie mają diod LED.
setOngoing() Zmieniono zachowanie

Zachowanie 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 o połączeniu przychodzącym kwalifikowało się jako powiadomienie z ostrzeżeniem, którego nie można zamknąć, musi spełniać określone wymagania.

Kierowcy mogą odrzucać wszystkie inne rodzaje powiadomień wyświetlanych na przedniej szybie.

setPublicVersion()

setVisibility()

Bezobsługowe Tryb prywatny nie jest obsługiwany.
setSettingsText() Bezobsługowe Powiadomienia nie obsługują elementów, które prowadzą do ustawień aplikacji. Kierowcy mogą uzyskać dostęp do ustawień aplikacji w samej aplikacji.
setTicker() Bezobsługowe Tekst przewijany nie jest obsługiwany.

Tabela 2. Zmiany w klasach zagnieżdżonych w przypadku Notification.Builder

Zagnieżdżone klasy Efekt Opis

Notification.BigPictureStyle

Notification.BigTextStyle

Notification.InboxStyle

Nieużywane Wyświetlany jest tylko tekst podsumowania. Szczegółowe powiadomienia dotyczące tych stylów 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 użytkownika z interfejsem powiadomień o mediach i odtwarzaniu.
Notification.MessagingStyle Zmieniono zachowanie

Powiadomienia w tym stylu różnią się od innych tym, że:

Notification.CarExtender

Notification.WearableExtender

Nieużywane 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 dla Notification.Action.Builder

Metody publiczne Efekt Opis
Konstruktory publiczne Zmieniono zachowanie Ikony określone w konstruktorach publicznych są ignorowane.
addRemoteInput Zmieniono zachowanie Aby zminimalizować rozproszenie uwagi kierowcy, asystent cyfrowy, np. Gemini lub Asystent Google, wstawia odpowiedź na wiadomość za użytkownika. Użytkownicy nie mogą pisać wiadomości.
setAllowGeneratedReplies Bezobsługowe Inteligentna odpowiedź nie jest obsługiwana.