Powiadomienia w systemie operacyjnym Android Automotive

Powiadomienia dostarczają kierowcom krótkich i aktualnych informacji o zdarzeniach z aplikacji, gdy nie jest ona używana. Powiadomienia mogą się pojawiać w Centrum powiadomień, a niektóre z nich mogą się też pojawiać na wyświetlaczu jako powiadomienia z ostrzeżeniem. Do tworzenia powiadomień na system operacyjny Android Automotive używasz tego samego interfejsu API NotificationBuilder, którego używasz na innych urządzeniach. Aby zapewnić bezpieczeństwo kierowcom i zminimalizować rozpraszanie uwagi, niektóre metody i klasy interfejsu API są ograniczone lub działają inaczej.

Czym różnią się powiadomienia w samochodach

Aby zapewnić bezpieczne środowisko dla kierowców, bez rozpraszających elementów powiadomienia w systemie operacyjnym Android Automotive różnią się od powiadomień na innych urządzeniach pod tymi względami:

  • Uproszczona interakcja użytkownika
  • Ograniczenia UX na podstawie stanu dysku

Uproszczona interakcja użytkownika

Aby kierowcy mogli skupić się na drodze, powiadomienia w samochodzie mają uproszczony model interakcji użytkownika z tymi funkcjami:

Brak złożonych elementów sterujących
W powiadomieniach nie można używać skomplikowanych elementów sterujących, takich jak klikanie, by rozwinąć powiadomienie, przytrzymanie powiadomienia, aby wyświetlić dodatkowe opcje, czy też używanie elementów sterujących opartych na gestach przesunięcia.
Dźwięki powiadomień
Powiadomienia są odtwarzane dźwiękowo tylko wtedy, gdy wywołują powiadomienie z ostrzeżeniem.
Przyciski automatycznego odtwarzania i 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.

  • Odtwarzaj: odczytuje powiadomienie kierowcy przy użyciu 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ń z ostrzeżeniem o przyszłych wiadomościach w rozmowie do końca tego procesu. Powiadomienia o wiadomościach z wyciszonego wątku są nadal wyświetlane w Centrum powiadomień. Kierowca może też wyłączyć wyciszenie rozmowy w tym miejscu.

Uproszczone opcje wyświetlania powiadomień

Widoki treści RemoteViews i niestandardowe widoki treści nie są obsługiwane. Nie są też obsługiwane następujące style powiadomień:

  • BigPictureStyle
  • BigTextStyle
  • InboxStyle

Jeśli Twoja aplikacja wysyła powiadomienie do systemu operacyjnego Android Automotive, używając jednego z tych stylów powiadomień, wyświetli się tylko tekst podsumowania.

Uproszczone zarządzanie kanałem powiadomień

System operacyjny Android Automotive nie obsługuje kanałów powiadomień ani powiązanych z nimi funkcji interfejsu, co zmniejsza częstotliwość korzystania z zaawansowanych funkcji zarządzania na urządzeniach Automotive.

Ograniczenia UX na podstawie stanu dysku

System operacyjny Android Automotive zawiera silnik ograniczeń UX. Producenci samochodów mogą używać tego silnika do ograniczania powiadomień na podstawie stanu jazdy w następujący sposób:

  • Obcinanie ciągów powiadomień do określonej długości znaków
  • Ukrywam podsumowania wiadomości dla powiadomień CATEGORY_MESSAGE
  • Ograniczenie liczby powiadomień wyświetlanych 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 powiadomieniach na innych urządzeniach. Ten podzbiór obejmuje te typy zasobów:

  • Elementy rysowalne
  • Ikony
  • Zdjęcia

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

Aby zadbać o spójność i minimalne rozpraszanie uwagi użytkownika, w systemie operacyjnym Android Automotive obowiązują specjalne wymagania.

Powiadomienie jest zgodne z samochodem, jeśli spełnia te wymagania:

  • Należy do kategorii CATEGORY_MESSAGE.
  • Używany jest styl Notification.MessagingStyle.
  • Zawiera tylko nieprzeczytane wiadomości.
  • Zawiera element Action oznaczony jako przeczytany, który spełnia te wymagania:

  • Jeśli powiadomienie zawiera odpowiedź Action, Action spełnia te wymagania:

    • Działanie semantyczne jest ustawione na Action.SEMANTIC_ACTION_REPLY.
    • Action oznacza, że po uruchomieniu nie wyświetla się żaden interfejs użytkownika.
    • Action zawiera pojedynczy element RemoteInput.

Centrum powiadomień

W Centrum powiadomień pojawiają się niemal wszystkie powiadomienia, nawet jeśli były one również wywoływane jako powiadomienia z ostrzeżeniem. Powiadomienia są przechowywane 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ą korzystać z Centrum powiadomień na jeden lub oba te sposoby:

  • Przesunięcie z góry ekranu w dół, podobnie jak w szufladzie powiadomień na innych urządzeniach.
  • kliknięcie przycisku w interfejsie systemu;

Pogrupowane powiadomienia

Powiązane powiadomienia są automatycznie grupowane w Centrum powiadomień, podobnie jak w panelu powiadomień na innych urządzeniach. Jeśli jednak kierowca kliknie podsumowanie dotyczące grupy w Centrum powiadomień, zamiast uruchomić PendingIntent grupa rozwinie się i wyświetli wszystkie powiadomienia.

Powiadomienia, które nie wyświetlają się w Centrum powiadomień

Następujące powiadomienia nie pojawiają się w Centrum powiadomień:

  • Powiadomienia Media playback. Informacje o trwającym odtwarzaniu multimediów są zbierane przez system operacyjny Android Automotive i wyświetlane w osobnym miejscu w interfejsie użytkownika. Pamiętaj, że aby powiadomienie zostało rozpoznane jako odtworzenie multimediów, parametr setMediaSession musi zostać wywołany za pomocą tokena, który nie ma wartości null.
  • Powiadomienia o nawigacji zakręt po zakręcie dla: CATEGORY_NAVIGATION.
  • Powiadomienia o usłudze na pierwszym planie w przypadku aplikacji z podwyższonymi uprawnieniami systemu i podpisanych kluczem platformy, które mają poziom ważności niższy niż IMPORTANCE_DEFAULT.

Ostrzeżenie

Powiadomienia z ostrzeżeniem pojawiają się w formie karty powiadomienia u góry ekranu. Ponieważ powiadomienie z ostrzeżeniem przyciąga uwagę kierowcy, wyświetla się tylko wtedy, gdy jest ono najistotniejsze, pilne lub podejmuje działania. Powiadomienia z ostrzeżeniem mogą pojawiać się tylko w przypadku niektórych kategorii powiadomień.

Producenci samochodów mogą zezwolić na wyświetlanie powiadomień z ostrzeżeniem, gdy Centrum powiadomień jest otwarte.

Jak aplikacje wyzwalają powiadomienia z ostrzeżeniem

Wymagania związane z wyświetlaniem powiadomień z ostrzeżeniem różnią się w zależności od tego, czy aplikacje mają uprawnienia systemowe.

Aplikacje z podwyższonymi uprawnieniami systemowymi i podpisane kluczem platformy
Aplikacja może uruchamiać powiadomienia z ostrzeżeniem, ustawiając znaczenie kanału powiadomień na IMPORTANCE_HIGH lub wyższe.
Wszystkie inne aplikacje

Aplikacja może aktywować powiadomienie z ostrzeżeniem, ustawiając znaczenie kanału powiadomień na IMPORTANCE_HIGH lub wyższą i upewniając się, że powiadomienie należy do jednej z tych kategorii:

Jak działa powiadomienie z ostrzeżeniem

Gdy aplikacja wyświetli powiadomienie z ostrzeżeniem, pojawi się ono natychmiast na ekranie samochodu. Jeśli kierowca nie podejmie żadnych działań, powiadomienie z ostrzeżeniem zniknie po 8 sekundach, z wyjątkiem tych sytuacji:

  • Powiadomienia z ostrzeżeniem o niektórych połączeniach przychodzących nie mogą zostać odrzucone. Powiadomienie z ostrzeżeniem pozostanie aktywne do czasu, aż kierowca zaakceptuje połączenie lub zostanie ono zakończone. Aby można było je uznać za powiadomienie z ostrzeżeniem o połączeniu przychodzącym, musi ono spełniać te wymagania:

  • Powiadomienia ostrzegawcze pozostają aktywne, gdy aplikacja zaktualizuje powiadomienie w ciągu 8-sekundowego okna.

Po odrzuceniu powiadomienia z ostrzeżeniem wyświetla się ono w Centrum powiadomień, chyba że jest to powiadomienie CATEGORY_NAVIGATION.

Zmiany i ograniczenia interfejsu Notification API dotyczące samochodów

W tej sekcji podsumowaliśmy różnice między poszczególnymi klasami, w przypadku których interfejs Notification API działa inaczej lub ma ograniczenia związane z systemem 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 dla: Notification.Builder

Metody publiczne Efekt Opis

addAction()

Warunkowe brak operacji Powiadomienia Notification.MessagingStyle muszą zawierać działania określone w wymaganiach dotyczących zgodności. Dodatkowe działania, które dodasz, nie będą wyświetlane jako przyciski powiadomień.

createBigContentView()

createContentView()

createHeadsUpContentView()

setContent()

setCustomBigContentView()

setCustomContentView()

setCustomHeadsUpContentView()

Brak operacji Dane RemoteViews i niestandardowe widoki treści nie są obsługiwane.

setBadgeIconType()

setNumber()

Brak operacji Plakietki powiadomień nie są obsługiwane.

setChronometerCountDown()

setUsesChronometer()

Brak operacji Odliczanie nie jest obsługiwane.
setColorized() Zmieniono ograniczenia

Aplikacje podpisane przez platformę: można skonfigurować; domyślnie dozwolone.

Aplikacje z uprawnieniami systemowymi: skonfigurowane przez platformę; domyślnie niedozwolone.

Wszystkie inne aplikacje: skonfigurowane przez platformę; domyślnie niedozwolone.

setFullScreenIntent() Sposób działania został zmieniony Nie uruchamia automatycznie intencji.
setLargeIcon() Sposób działania został zmieniony Po prawej stronie powiadomienia wyświetlają się duże ikony.
setLights() Brak operacji Urządzenia z systemem operacyjnym Android Automotive nie mają diod LED.
setOngoing() Sposób działania został zmieniony

Sposób działania różni się wtedy, gdy powiadomienie wyświetla też ostrzeżenie z ostrzeżeniem.

setOngoing() sprawia, że nie można zamknąć powiadomienia z wyprzedzeniem tylko wtedy, gdy dotyczy ono połączenia przychodzącego. Aby powiadomienie kwalifikowało się jako nieodwracalne powiadomienie z wyprzedzeniem o połączeniu przychodzącym, musi zawierać parametr setPublicVersion()

setVisibility()

Brak operacji Tryb prywatny nie jest obsługiwany.
setSettingsText() Brak operacji Powiadomienia nie obsługują ofert, które prowadzą do ustawień aplikacji. Kierowcy uzyskują dostęp do ustawień aplikacji przez aplikację.
setTicker() Brak operacji Tekst paska aktywności nie jest obsługiwany.

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

Zagnieżdżone klasy Efekt Opis

Notification.BigPictureStyle

Notification.BigTextStyle

Notification.InboxStyle

Not used Widoczny jest tylko tekst podsumowania. Szczegółowe powiadomienia dotyczące tych stylów nie są obsługiwane.
Notification.BubbleMetadata Not used Dymki nie są obsługiwane.
Notification.MediaStyle Ukryto Powiadomienia z tym stylem są ukryte. W przypadku powiadomień o multimediach i odtwarzania w interfejsie system operacyjny Android Automotive zarządza interfejsami użytkownika.
Notification.MessagingStyle Sposób działania został zmieniony

Powiadomienia z tym stylem różnią się między sobą:

Notification.CarExtender

Notification.WearableExtender

Not used Przedłużacze nie są obsługiwane.

Notification.Action.Builder

W tabeli 3 opisano zmiany i ograniczenia interfejsu API w klasie Notification.Action.Builder.

Tabela 3. Zmiany w metodach publicznych dla: Notification.Action.Builder

Metody publiczne Efekt Opis
Konstruktory publiczne Sposób działania został zmieniony Ikony określone w konstruktorach publicznych są ignorowane.
addRemoteInput Sposób działania został zmieniony Aby ograniczyć rozpraszanie uwagi kierowcy, asystent cyfrowy, np. Asystent Google, wstawia odpowiedź na wiadomość dla użytkownika. Użytkownicy nie mogą pisać wiadomości.
setAllowGeneratedReplies Brak operacji Inteligentna odpowiedź nie jest obsługiwana.