Benachrichtigungen liefern Fahrern kurze, zeitnahe Informationen zu Ereignissen aus Ihrer App, wenn sie nicht verwendet wird. Benachrichtigungen können im Benachrichtigungscenter angezeigt werden. Einige Benachrichtigungen können auch als Pop-up-Benachrichtigungen auf dem Display angezeigt werden. Zum Erstellen von Benachrichtigungen für Android Automotive OS verwenden Sie dieselbe NotificationBuilder API wie für andere Geräte. Um die Sicherheit der Fahrer zu gewährleisten und Ablenkungen zu minimieren, sind einige API-Methoden und -Klassen jedoch eingeschränkt oder verhalten sich anders.
Unterschiede bei Benachrichtigungen in Autos
Um eine sichere Fahrumgebung ohne Ablenkungen zu schaffen, unterscheiden sich Benachrichtigungen in Android Automotive OS in folgenden Punkten von Benachrichtigungen auf anderen Geräten:
- Vereinfachte Nutzerinteraktion
- UX-Einschränkungen basierend auf dem Fahrzustand
Vereinfachte Nutzerinteraktion
Damit sich Fahrer auf die Straße konzentrieren können, haben Benachrichtigungen im Auto ein vereinfachtes Nutzerinteraktionsmodell mit den folgenden Funktionen:
- Keine komplexen Steuerelemente
- Benachrichtigungen ermöglichen keine komplexen Steuerelemente, z. B. durch Tippen zum Maximieren einer Benachrichtigung, durch langes Drücken einer Benachrichtigung für zusätzliche Optionen oder durch Steuerelemente, 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 automatisch die Schaltflächen Wiedergeben und Stummschalten zu allen mit dem Auto kompatiblen Messaging-Benachrichtigungen hinzu.
- Wiedergabe:Die Benachrichtigung wird dem Fahrer über den standardmäßigen digitalen Assistenten des Nutzers, z. B. Google Assistant, oder das standardmäßige Text-to-Speech-System des Fahrzeugs vorgelesen.
Stummschalten:Dadurch werden für den Rest der Fahrt keine Pop-up-Benachrichtigungen für zukünftige Nachrichten in der Unterhaltung mehr angezeigt. Nachrichtenbenachrichtigungen aus einer stummgeschalteten Unterhaltung werden weiterhin im Benachrichtigungscenter angezeigt. Der Fahrer kann die Unterhaltung auch über das Benachrichtigungscenter wieder aktivieren.
- Vereinfachte Anzeigeoptionen für Benachrichtigungen
RemoteViewsund benutzerdefinierte Inhaltsansichten werden nicht unterstützt. Außerdem werden die folgenden Benachrichtigungsstile nicht unterstützt:Wenn Ihre 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 zugehörigen UI-Elemente, um die Häufigkeit umfangreicher Verwaltungsaufgaben auf Automotive-Geräten zu verringern.
UX-Einschränkungen basierend auf dem Fahrzustand
Android Automotive OS enthält eine UX Restrictions Engine. Automobilhersteller können diese Engine verwenden, um Benachrichtigungen basierend auf dem Fahrzustand des Autos auf folgende Weise einzuschränken:
- Benachrichtigungsstrings bei einer bestimmten Zeichenlänge kürzen
- Zusammenfassungen von Nachrichten für
CATEGORY_MESSAGE-Benachrichtigungen ausblenden - Anzahl der Benachrichtigungen begrenzen, die im Benachrichtigungscenter angezeigt werden können
Unterstützte Ressourcentypen
Standardmäßig unterstützt Android Automotive OS nur 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 eine einheitliche und möglichst wenig ablenkende Nutzererfahrung haben, gelten für Messaging-Benachrichtigungen unter Android Automotive OS besondere Anforderungen.
Eine Messaging-Benachrichtigung ist mit dem Auto kompatibel, wenn sie die folgenden Anforderungen erfüllt:
- Sie gehört zur Kategorie
CATEGORY_MESSAGE. - Dabei wird der Stil
Notification.MessagingStyleverwendet. - Sie enthält nur ungelesene Nachrichten.
Es hat ein „Als gelesen markieren“-Symbol
Action, das die folgenden Anforderungen erfüllt:- Die semantische Aktion ist auf
Action.SEMANTIC_ACTION_MARK_AS_READfestgelegt. - Das
Actiongibt an, dass beim Auslösen keine Benutzeroberfläche angezeigt wird.
- Die semantische Aktion ist auf
Wenn die Benachrichtigung eine Antwort
Actionenthält, erfülltActiondie folgenden Anforderungen:- Die semantische Aktion ist auf
Action.SEMANTIC_ACTION_REPLYfestgelegt. - Das
Actiongibt an, dass beim Auslösen keine Benutzeroberfläche angezeigt wird. Actionenthält ein einzelnesRemoteInput.
- Die semantische Aktion ist auf
Benachrichtigungscenter
Fast alle Benachrichtigungen werden im Benachrichtigungscenter angezeigt, auch wenn sie auch als Pop-up-Benachrichtigungen ausgelöst wurden. Benachrichtigungen bleiben während der gesamten Fahrt im Benachrichtigungscenter.
Fahrer können im Benachrichtigungscenter mit Benachrichtigungen interagieren. Je nach Fahrzeughersteller können Fahrer auf das Benachrichtigungscenter auf eine oder beide der folgenden Arten zugreifen:
- Wischen Sie vom oberen Bildschirmrand nach unten, ähnlich wie bei der Benachrichtigungsleiste auf anderen Geräten.
- Tippen auf eine Schaltfläche in der Systemoberfläche.
Gruppierte Benachrichtigungen
Zugehörige Benachrichtigungen werden automatisch im Benachrichtigungscenter gruppiert, wie in der Benachrichtigungsleiste auf anderen Geräten. Wenn ein Fahrer jedoch im Benachrichtigungscenter auf die Zusammenfassung einer Gruppe tippt, wird die Gruppe maximiert, um alle Benachrichtigungen anzuzeigen, anstatt PendingIntent zu starten.
Benachrichtigungen, die nicht im Benachrichtigungscenter angezeigt werden
Die folgenden Benachrichtigungen werden nicht im Benachrichtigungscenter angezeigt:
Media playback-Benachrichtigungen. Android Automotive OS erfasst Informationen zur laufenden Medienwiedergabe und zeigt sie an einem bestimmten Ort auf der Benutzeroberfläche an. Beachten Sie, dass SiesetMediaSessionmit einem nicht leeren Token aufrufen müssen, damit das System die Benachrichtigung als Medienwiedergabe erkennt.- Benachrichtigungen zur detaillierten Routenführung für
CATEGORY_NAVIGATION. - Benachrichtigungen für Dienste im Vordergrund für Apps mit Systemberechtigungen und Apps, die mit dem Plattformschlüssel signiert sind und deren Wichtigkeitsstufe niedriger als
IMPORTANCE_DEFAULTist.
Vorabbenachrichtigungen
Vorabbenachrichtigungen werden als Benachrichtigungskarte oben auf dem Display angezeigt. Da wichtige Benachrichtigungen die Aufmerksamkeit des Fahrers auf sich ziehen, sollten sie nur ausgelöst werden, wenn die Informationen fahrkritisch, zeitkritisch und umsetzbar sind. Nur bestimmte Kategorien von Benachrichtigungen können eine Pop-up-Benachrichtigung auslösen.
Autohersteller können entscheiden, ob wichtige Benachrichtigungen angezeigt werden dürfen, während das Benachrichtigungscenter geöffnet ist.
So lösen Apps wichtige Benachrichtigungen aus
Apps haben unterschiedliche Anforderungen für das Auslösen einer Kurzbenachrichtigung, je nachdem, ob sie Systemberechtigungen haben.
- Apps mit Systemberechtigungen und Apps, die mit dem Plattformschlüssel signiert sind
- Die App kann eine wichtige Benachrichtigung auslösen, indem sie die Wichtigkeit des Benachrichtigungschannels auf
IMPORTANCE_HIGHoder höher festlegt. - Alle anderen Apps
Die App kann eine Vorabbenachrichtigung auslösen, indem sie die Wichtigkeit des Benachrichtigungschannels auf
IMPORTANCE_HIGHoder höher festlegt und dafür sorgt, dass die Benachrichtigung zu einer der folgenden Kategorien gehört:
Lebensdauer einer Vorabbenachrichtigung
Nachdem eine App eine Vorabbenachrichtigung ausgelöst hat, wird die Benachrichtigung sofort auf dem Display des Autos angezeigt. Wenn der Fahrer nichts unternimmt, wird die Benachrichtigung nach 8 Sekunden automatisch geschlossen, außer in den folgenden Fällen:
Die Pop-up-Benachrichtigungen für bestimmte eingehende Anrufe können nicht geschlossen werden. Sie bleiben so lange sichtbar, bis der Fahrer den Anruf annimmt oder der Anruf beendet wird. Damit eine Benachrichtigung als nicht schließbare Vorabbenachrichtigung für einen eingehenden Anruf gilt, muss sie die folgenden Anforderungen erfüllen:
- Gehören zu
CATEGORY_CALL - Full-Screen Intent festlegen
- Mit der Methode
setOngoing()als „laufend“ markiert werden
- Gehören zu
Vorabbenachrichtigungen bleiben erhalten, wenn eine App die Benachrichtigung innerhalb des Acht-Sekunden-Zeitfensters aktualisiert.
Wenn eine Pop-up-Benachrichtigung 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, in der sich die Notifications API unter Android Automotive OS anders verhält oder Einschränkungen gelten.
Notification.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 | Effekte | Beschreibung |
|---|---|---|
|
|
Bedingter No-Op | Notification.MessagingStyle-Benachrichtigungen müssen die in den Kompatibilitätsanforderungen angegebenen Aktionen enthalten. Alle zusätzlichen Aktionen, die hinzugefügt werden, werden nicht als Benachrichtigungsschaltflächen gerendert. |
|
|
Managementfrei | RemoteViews und benutzerdefinierte Inhaltsansichten werden nicht unterstützt. |
|
|
Managementfrei | Benachrichtigungskennzeichen werden nicht unterstützt. |
|
|
Managementfrei | Countdown-Timer werden nicht unterstützt. |
setColorized() |
Einschränkungen geändert |
Plattformsignierte Apps: konfigurierbar; standardmäßig zulässig. Apps mit Systemberechtigungen: von der Plattform konfiguriert; standardmäßig nicht zulässig. Alle anderen Apps: von der Plattform konfiguriert; standardmäßig nicht zulässig. |
setFullScreenIntent() |
Verhalten geändert | Der Intent wird nicht automatisch gestartet. |
setLargeIcon() |
Verhalten geändert | Rechts neben 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 die Benachrichtigung auch eine Vorabbenachrichtigung auslöst.
Alle anderen Arten von Hinweismeldungen können vom Fahrer geschlossen werden. |
|
|
Managementfrei | Der private Modus wird nicht unterstützt. |
setSettingsText() |
Managementfrei | Benachrichtigungen unterstützen keine Affordances, die zu App-Einstellungen verlinken. Fahrer greifen stattdessen über die App auf die App-Einstellungen zu. |
setTicker() |
Managementfrei | Lauftext wird nicht unterstützt. |
Tabelle 2: Änderungen an verschachtelten Klassen für Notification.Builder
| Verschachtelte Klassen | Effekte | 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 werden ausgeblendet. Android Automotive OS verwaltet Benutzeroberflächeninteraktionen für Medienbenachrichtigungen und die Wiedergabe. |
Notification.MessagingStyle |
Verhalten geändert |
Benachrichtigungen mit diesem Stil haben folgende Unterschiede:
|
|
|
Nicht verwendet | Extender werden nicht unterstützt. |
Notification.Action.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 | Effekte | Beschreibung |
|---|---|---|
| Öffentliche Konstruktoren | Verhalten geändert | In öffentlichen Konstruktoren angegebene Symbole werden ignoriert. |
addRemoteInput |
Verhalten geändert | Um die Ablenkung des Fahrers zu minimieren, 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 | „Smarte Antworten“ werden nicht unterstützt. |