Benachrichtigungen informieren Fahrer über kurze und aktuelle Ereignisse aus deiner App, wenn sie nicht verwendet wird. Benachrichtigungen können in der Benachrichtigungszentrale erscheinen. Einige Benachrichtigungen können auch als Vorabbenachrichtigungen auf dem Display angezeigt werden. Zum Erstellen von Benachrichtigungen für Android Automotive OS verwendest du dieselbe NotificationBuilder
API, die du für andere Geräte verwendest. Einige API-Methoden und -Klassen sind jedoch eingeschränkt oder verhalten sich anders, um die Sicherheit der Fahrer zu gewährleisten und die Ablenkung zu minimieren.
Unterschiede zwischen Benachrichtigungen in Autos
Um eine sichere Fahrumgebung ohne Ablenkungen zu schaffen, unterscheiden sich Benachrichtigungen unter Android Automotive OS in folgenden Punkten von Benachrichtigungen auf anderen Geräten:
- Vereinfachte Nutzerinteraktion
- UX-Einschränkungen basierend auf dem Drive-Status
Vereinfachte Nutzerinteraktion
Damit sich der Fahrer auf den Verkehr konzentrieren kann, bieten Benachrichtigungen im Auto ein vereinfachtes Nutzerinteraktionsmodell mit folgenden Funktionen:
- Keine komplexen Steuerelemente
- Komplexe Steuerelemente sind in Benachrichtigungen nicht möglich. Dazu zählen beispielsweise das Tippen zum Maximieren einer Benachrichtigung, das lange Gedrückthalten einer Benachrichtigung für zusätzliche Optionen oder die Verwendung von Steuerelementen, die auf Wischgesten basieren.
- Benachrichtigungstöne
- Bei Benachrichtigungen wird nur dann ein Ton abgespielt, wenn sie eine Vorabbenachrichtigung auslösen.
Android Automotive OS fügt allen Auto-kompatiblen Benachrichtigungen automatisch die Schaltflächen Wiedergabe und Stummschalten hinzu.
- Wiedergabe:liest die Benachrichtigung dem Fahrer über den standardmäßigen digitalen Assistenten des Nutzers (z. B. Google Assistant) oder das Standard-Sprachausgabesystem des Fahrzeugs vor.
Stummschalten:verhindert, dass für zukünftige Nachrichten in der Unterhaltung für den Rest der Fahrt Vorabbenachrichtigungen angezeigt werden. Nachrichtenbenachrichtigungen von einer stummgeschalteten Unterhaltung werden weiterhin in der Benachrichtigungszentrale angezeigt und der Fahrer kann die Stummschaltung der Unterhaltung auch über die Benachrichtigungszentrale aufheben.
- Vereinfachte Anzeigeoptionen für Benachrichtigungen
RemoteViews
und benutzerdefinierte Inhaltsansichten werden nicht unterstützt. Außerdem werden die folgenden Benachrichtigungsstile nicht unterstützt:BigPictureStyle
BigTextStyle
InboxStyle
Wenn deine App eine Benachrichtigung mit einem dieser Benachrichtigungsstile an Android Automotive OS sendet, wird nur der Zusammenfassungstext angezeigt.
- Vereinfachte Verwaltung von Benachrichtigungskanälen
Android Automotive OS unterstützt keine Benachrichtigungskanäle und damit verbundene Angebote für Benutzeroberfläche, um die Verbreitung umfangreicher Verwaltungsaufgaben auf Automobilgeräten zu verringern.
UX-Einschränkungen basierend auf dem Drive-Status
Android Automotive OS enthält eine UX-Einschränkungs-Engine. Autohersteller können diesen Motor verwenden, um Benachrichtigungen auf Grundlage des Fahrzustands des Autos auf folgende Arten einzuschränken:
- Benachrichtigungsstrings auf eine bestimmte Zeichenlänge kürzen
- Nachrichtenzusammenfassungen für
CATEGORY_MESSAGE
-Benachrichtigungen ausblenden - Anzahl der Benachrichtigungen beschränken, die in der Mitteilungszentrale angezeigt werden können
Unterstützte Ressourcentypen
Standardmäßig unterstützt Android Automotive OS eine begrenzte Teilmenge der Ressourcentypen, die für Benachrichtigungen auf anderen Geräten verwendet werden können. Diese Teilmenge umfasst die folgenden Ressourcentypen:
- Drawables
- Symbole
- Bilder
Kompatibilitätsanforderungen für Messaging-Benachrichtigungen
Damit die Nutzer nicht abgelenkt werden, gelten für Benachrichtigungen unter Android Automotive OS besondere Anforderungen.
Eine Messaging-Benachrichtigung ist für das Auto kompatibel, wenn sie die folgenden Anforderungen erfüllt:
- Es gehört zur Kategorie
CATEGORY_MESSAGE
. - Sie verwendet den Stil
Notification.MessagingStyle
. - Es werden nur ungelesene Nachrichten angezeigt.
Es hat ein „Als gelesen markieren“-
Action
, das die folgenden Anforderungen erfüllt:- Die semantische Aktion ist auf
Action.SEMANTIC_ACTION_MARK_AS_READ
festgelegt. Action
gibt an, dass beim Auslösen keine Benutzeroberfläche angezeigt wird.
- Die semantische Aktion ist auf
Wenn die Benachrichtigung eine Antwort-
Action
enthält, erfüllt dieAction
die folgenden Anforderungen:- Die semantische Aktion ist auf
Action.SEMANTIC_ACTION_REPLY
festgelegt. Action
gibt an, dass beim Auslösen keine Benutzeroberfläche angezeigt wird.Action
enthält ein einzelnesRemoteInput
.
- Die semantische Aktion ist auf
Benachrichtigungscenter
Nahezu alle Benachrichtigungen werden im Benachrichtigungscenter angezeigt, auch wenn diese Benachrichtigungen auch als Vorabbenachrichtigungen ausgelöst wurden. Benachrichtigungen werden für die Dauer einer Fahrt im Benachrichtigungscenter angezeigt.
Fahrer können im Benachrichtigungscenter mit Benachrichtigungen interagieren. Je nach Fahrzeughersteller greifen die Fahrer auf eine der folgenden Arten auf das Benachrichtigungscenter zu:
- Wischen vom oberen Bildschirmrand nach unten, ähnlich wie bei der Benachrichtigungsleiste auf anderen Geräten.
- Auf eine Schaltfläche in der Systemoberfläche tippen
Gruppierte Benachrichtigungen
Zugehörige Benachrichtigungen werden im Benachrichtigungscenter automatisch gruppiert, wie in der Benachrichtigungsleiste auf anderen Geräten. Wenn ein Fahrer jedoch in der Benachrichtigungszentrale auf die Zusammenfassung einer Gruppe tippt, statt PendingIntent
zu starten, wird die Gruppe maximiert und alle zugehörigen Benachrichtigungen angezeigt.
Benachrichtigungen, die nicht im Benachrichtigungscenter angezeigt werden
Die folgenden Benachrichtigungen werden nicht in der Benachrichtigungszentrale angezeigt:
Media playback
-Benachrichtigungen. Informationen zur laufenden Medienwiedergabe werden von Android Automotive OS erfasst und an einem speziellen Ort in der Benutzeroberfläche angezeigt.setMediaSession
muss mit einem Token aufgerufen werden, das nicht null ist, damit die Benachrichtigung als Medienwiedergabe erkannt wird.- Benachrichtigungen zur detaillierten Routenführung für
CATEGORY_NAVIGATION
- Benachrichtigungen von Diensten im Vordergrund für systemprivilegierte Apps und Apps, die mit dem Plattformschlüssel signiert sind und eine Prioritätsstufe unter
IMPORTANCE_DEFAULT
haben.
Vorabbenachrichtigungen
Vorabbenachrichtigungen werden als Benachrichtigungskarte oben auf dem Bildschirm angezeigt. Da eine Vorabbenachrichtigung die Aufmerksamkeit des Fahrers auf sich zieht, wird sie nur dann ausgelöst, wenn sie fahrtkritisch, zeitkritisch und umsetzbar ist. Nur bestimmte Benachrichtigungskategorien können eine Vorabbenachrichtigung auslösen.
Autohersteller können entscheiden, ob Vorabbenachrichtigungen angezeigt werden sollen, während das Benachrichtigungscenter geöffnet ist.
So lösen Apps Vorabbenachrichtigungen aus
Apps haben unterschiedliche Anforderungen zum Auslösen einer Vorabbenachrichtigung, je nachdem, ob sie Systemberechtigungen haben.
- Vom System privilegierte Apps und Apps, die mit dem Plattformschlüssel signiert sind
- Die App kann eine Vorabbenachrichtigung auslösen, indem die Wichtigkeit des Benachrichtigungskanals auf
IMPORTANCE_HIGH
oder höher festgelegt wird. - Alle anderen Apps
Die Anwendung kann eine Vorabbenachrichtigung auslösen, indem die Wichtigkeit des Benachrichtigungskanals auf
IMPORTANCE_HIGH
oder höher gesetzt wird und die Benachrichtigung zu einer der folgenden Kategorien gehört:
Ablauf einer Vorabbenachrichtigung
Nachdem eine App eine Vorabbenachrichtigung ausgelöst hat, wird diese direkt auf dem Display des Autos angezeigt. Wenn der Fahrer nichts unternimmt, wird die Vorwarnung nach acht Sekunden automatisch geschlossen. Dies gilt jedoch nicht für folgende Fälle:
Vorabbenachrichtigungen für bestimmte eingehende Anrufe können nicht geschlossen werden. Sie bleiben so lange erhalten, bis der Fahrer den Anruf annimmt oder beendet wird. Um als nicht schließbare Vorabbenachrichtigung für einen eingehenden Anruf zu gelten, muss eine Benachrichtigung die folgenden Voraussetzungen erfüllen:
- Zu
CATEGORY_CALL
gehören - Vollbild-Intent festlegen
- Sie muss mit der Methode
setOngoing()
als aktiv gekennzeichnet sein.
- Zu
Vorabbenachrichtigungen bleiben erhalten, wenn eine App die Benachrichtigung innerhalb von acht Sekunden aktualisiert.
Wenn eine Vorabbenachrichtigung geschlossen wird, wird sie im Benachrichtigungscenter aufgeführt, sofern es sich nicht um eine CATEGORY_NAVIGATION
-Benachrichtigung handelt.
Änderungen und Einschränkungen der Notification API für Autos
In diesem Abschnitt werden die Unterschiede für jede Klasse zusammengefasst, bei der die Notifications API ein anderes Verhalten aufweist oder Einschränkungen für Android Automotive OS unterliegt.
Benachrichtigung.Builder
In den Tabellen 1 und 2 werden die API-Änderungen und -Einschränkungen in der Klasse Notification.Builder
beschrieben.
Tabelle 1. Änderungen an öffentlichen Methoden für Notification.Builder
Öffentliche Methoden | Effekt | Beschreibung | ||
---|---|---|---|---|
|
Bedingte Null-Operation | Für Notification.MessagingStyle -Benachrichtigungen müssen die in den Kompatibilitätsanforderungen angegebenen Aktionen enthalten sein. Zusätzliche Aktionen, die hinzugefügt werden, werden nicht als Benachrichtigungsschaltflächen gerendert. |
||
|
Managementfrei | RemoteViews und benutzerdefinierte Inhaltsaufrufe werden nicht unterstützt. |
||
|
Managementfrei | Benachrichtigungskennzeichen werden nicht unterstützt. | ||
| Managementfrei | Countdown-Timer werden nicht unterstützt. | ||
setColorized() |
Beschränkungen geändert |
Von der Plattform signierte Apps: konfigurierbar; standardmäßig zulässig. Apps mit Systemberechtigungen: von der Plattform konfiguriert; standardmäßig nicht zugelassen. Alle anderen Apps: von der Plattform konfiguriert; standardmäßig nicht zugelassen. |
||
setFullScreenIntent() |
Verhalten geändert | Der Intent wird nicht automatisch gestartet. | ||
setLargeIcon() |
Verhalten geändert | Auf der rechten Seite der Benachrichtigung werden große Symbole angezeigt. | ||
setLights() |
Managementfrei | Android Automotive OS-Geräte haben keine LED-Anzeigen. | ||
setOngoing() |
Verhalten geändert |
Das Verhalten ist anders, wenn durch die Benachrichtigung auch eine Vorabbenachrichtigung ausgelöst wird.
|
Managementfrei | Der private Modus wird nicht unterstützt. |
setSettingsText() |
Managementfrei | Angebote, die mit App-Einstellungen verknüpft sind, werden in Benachrichtigungen nicht unterstützt. Die Fahrer greifen stattdessen über die App auf die App-Einstellungen zu. | ||
setTicker() |
Managementfrei | Tickertext wird nicht unterstützt. |
Tabelle 2. Änderungen an verschachtelten Kursen für Notification.Builder
Verschachtelte Klassen | Effekt | Beschreibung |
---|---|---|
|
Nicht verwendet | Es wird nur der Zusammenfassungstext angezeigt. Detaillierte Benachrichtigungen für diese Stile werden nicht unterstützt. |
Notification.BubbleMetadata |
Nicht verwendet | Bubbles werden nicht unterstützt. |
Notification.MediaStyle |
Ausgeblendet | Benachrichtigungen mit diesem Stil sind ausgeblendet. Android Automotive OS verwaltet Interaktionen auf der Benutzeroberfläche für Medienbenachrichtigungen und die Wiedergabe. |
Notification.MessagingStyle |
Verhalten geändert |
Benachrichtigungen mit diesem Stil unterscheiden sich in folgenden Punkten:
|
|
Nicht verwendet | Extender werden nicht unterstützt. |
Benachrichtigung.Aktion.Builder
In Tabelle 3 werden die API-Änderungen und -Einschränkungen in der Klasse Notification.Action.Builder
beschrieben.
Tabelle 3. Änderungen an öffentlichen Methoden für Notification.Action.Builder
Öffentliche Methoden | Effekt | Beschreibung |
---|---|---|
Öffentliche Konstrukteure | Verhalten geändert | In öffentlichen Konstruktoren angegebene Symbole werden ignoriert. |
addRemoteInput |
Verhalten geändert | Um die Ablenkung des Fahrers so gering wie möglich zu halten, fügt ein digitaler Assistent wie Google Assistant die Antwort auf eine Nachricht für den Nutzer ein. Nutzer können keine Nachrichten eingeben. |
setAllowGeneratedReplies |
Managementfrei | Intelligente Antwort wird nicht unterstützt. |