Die Auswahl der aktiven VIA erfolgt über
ManageAssistActivity
in den Autoeinstellungen. Dieser Ablauf wird von der PackageInstaller
-App als Teil der
im Abschnitt „Standard-Apps“ auf dem Bildschirm „Einstellungen“.
Abbildung 1: Standard-Apps auf dem Einstellungsbildschirm
Die ausgewählte VIA wird dem System auf zwei Arten zugänglich gemacht:
- Im Rahmen der
RolesManager
Systemdienst - Von
VoiceInteractionManagerService
bisAssistUtils
internen API.
Eine Liste der möglichen VIAs erhalten Sie unter RolesManager
.
mit dem Rollennamen android.app.role.ASSISTANT
.
Hotword-Erkennung
Android bietet AlwaysOnHotwordDetector.
als Abstraktion über den Hardware-DSP. Dies ist eine bequeme Möglichkeit,
Verknüpfe ein VoiceInteractionService
mit einem Sprachmodell, um das Always-On-Modus mit geringem Energieverbrauch zu ermöglichen
Spracherkennung. Dies ist der gängigste und bekannteste Interaktionsablauf, bei dem die Nutzenden
Anfragen zur Interaktion mit einer Voice Application (VA), um eine neue Unterhaltung zu initiieren. Spracheingabe
Sitzungen, die auf diese Weise gestartet wurden, werden mit SHOW_SOURCE_ASSIST_GESTURE flag
gekennzeichnet.
Abbildung 2: Hotword-Erkennung
Legende. Systemdienste werden hellblau, VIA-Komponenten in Grün angezeigt.
PTT-Trigger
Das gilt für langes oder kurzes Drücken der Hardware-Taste. In AAOS wird PTT von CarInputService zur Verfügung steht. In einer Standardimplementierung verarbeitet dieser Dienst Eingabeereignisse, die über das Fahrzeug-HAL empfangen werden, und, im speziellen Fall, Interaktion wird die folgende Logik auf Schlüsselereignisse angewendet:
- Kurze PTT-Ereignisse (
KeyEvent.KEYCODE_VOICE_ASSIST
) werden weitergeleitet anVoiceInteractionManagerService
, um eine neue Sprachsitzung zu starten. - Lange PTT-Ereignisse werden als Erstes an Projektionsempfänger übergeben, z. B. Android Auto. oder CarPlay), dann zu Bluetooth-fähigen Geräten und schließlich zur lokalen VIA-Verbindung.
Sitzungen, die mit diesem Ablauf gestartet wurden, werden mit SHOW_SOURCE_PUSH_TO_TALK
gekennzeichnet.
Abbildung 3: PTT-Trigger
Informationen zum Einbinden einer Hardware-Sprachsteuerungstaste in AAOS finden Sie unter Automotive Key Input (Integration der Automotive-Schlüsseleingabe).
Zum Sprechen tippen (oder die Softwareschaltfläche)
Die Sprachinteraktion über die System-UI wird mit AssistUtil ausgelöst. Dies ist eine verborgene System-API, die nur von gebündelte System-Apps wie die System-UI, die Folgendes ermöglicht:
- Interaktion mit
VoiceInteractionManagerService
, um Sprachsteuerungssitzungen zu starten. - Ermitteln Sie, welche VIA derzeit ausgewählt ist.
Zur dynamischen Darstellung der ausgewählten VIA-App kann die System-UI Folgendes verwenden:
RoleManager
und folgen Sie den Änderungen am Rolleninhaber für ROLE_ASSISTANT
.
Ein Beispiel für die Implementierung der TTT-Auslösung findest du in CarSystemUI, AssistantButton
.
Abbildung 4: Tippen-to-Talk-Trigger
Sprachassistent: Tap-to-Read (TTR)
In Automotive wurden im Benachrichtigungscenter veröffentlichte Benachrichtigungen alsINBOX
- oder INBOX_IN_GROUP
-Benachrichtigungen (z. B. SMS)
Eine Aktionsschaltfläche für die Wiedergabe enthalten, mit der sich Benachrichtigungen vorlesen lassen
vom ausgewählten VIA ausgewählt und optional per Spracheingabe antworten.
Abbildung 5: Benachrichtigungen
Weitere Informationen zum Implementieren dieses Ablaufs finden Sie unter Alias Messaging-Befehle
VIA über den Autostarter starten
Wie jede andere App können Video-Thumbnails eine oder mehrere Launcher-Aktivitäten auf Manifests. Der App-Entwickler und der OEM, der die Vereinbarung diese App vorinstallieren, um zu entscheiden, was diese Aktivitäten bewirken.
Wichtig. In der Automobilbranche: alle Aktivitäten, einschließlich System
unterliegen UX-Einschränkungen während der Fahrt. Wenn die gewünschte Funktion
zum Aktivieren über einen Launcher-Symbol muss während der Fahrt verfügbar sein.
Auf die Zulassungsliste setzen (OEM-Produkte) oder die Aktivität mit distractionOptimized
vermerken
Metadaten. Weitere Informationen finden Sie unter
Richtlinien zur Ablenkung von Autofahrern
DSP und Audio-HAL
Lies dir unbedingt die aktualisierten Richtlinien zur gleichzeitigen Verwendung von Always-On-Audio durch. Aufnahme und Audio-HAL bei Concurrent fill (Gleichzeitige Aufnahme). Der Zugriff auf diese APIs kann erhebliche Auswirkungen auf die Leistung des Hotwords haben. wie unter Antworten auf Hotwords verwenden.
Berechtigungen
Systemprivilegierte Berechtigungen gewähren
Da der Nutzer die privilegierte Berechtigung nicht gewähren kann, müssen VIA folgende Voraussetzungen erfüllen: müssen OEMs ihr APK vorab in ihre System-Images laden und diese Berechtigungen explizit in ihren Builds. Weitere Informationen finden Sie unter Anfrage Berechtigungen
Fügen Sie dazu Ihrem Projekt eine Abhängigkeit für die Berechtigungsliste hinzu:
Android.bp
android_app { ... required: ["privapp_allowlist_com.example.myvoicecontrol"], ... }
yourdata/etc/car
die Berechtigungsdatei für die Zulassungsliste für Systemberechtigungen hinzufügen
Ordner:
vendor/…/data/etc/car/Android.bp
prebuilt_etc { name:privapp_allowlist_com.example.myvoicecontrol", sub_dir: "permissions", src: "com.example.myvoicecontrol.xml", filename_from_src: true, }
vendor/…/data/etc/car/com.example.myvoicecontrol.xml
<?xml version="1.0" encoding="utf-8"?> <permissions> <privapp-permissions package="com.android.car.voicecontrol"> <permission name="android.permission.MEDIA_CONTENT_CONTROL"/> </privapp-permissions> </permissions>
Vorab erteilte gefährliche Berechtigungen
Wie in
Anfrage
Berechtigungen enthalten, ist für den Zugriff auf bestimmte Funktionen bei VIA die Einwilligung des Nutzers erforderlich. Einige davon
Berechtigungen werden dem Standard-VoiceInteractionService
vorab gewährt (siehe
DefaultPermissionGrantPolicy.java
).
Weitere Informationen zu Berechtigungen für Standard-Handler finden Sie unter
Berechtigungen
wird nur in Standard-Handlern verwendet. Es ist auch möglich, Berechtigungen über die default-permissions.xml
vorab zu gewähren.
Konfigurationsdatei. Weitere Informationen zu
Einschränkungen bezüglich der Vorab-Erteilung von Berechtigungen, siehe Abschnitt 9 in der
Compatibility Definition Document (CDD).
Wichtig. In allen Fällen hätte nur die VIA-Datei die Standardmethode diese Berechtigungen vorab gewährt wurden. Sind im System mehr als eine VIA vorinstalliert, Die nicht standardmäßige VIA muss dem Nutzer im Rahmen der bei der Einrichtung oder bei der ersten Verwendung.
Verteilung (Updates vorinstallieren und bereitstellen)
Vorinstallierte VIAs müssen unter /product/priv-apps
oder
/vendor/priv-apps
Partitionen und Ordner (weitere Informationen zu Partitionen finden Sie unter Partitionsübersicht und
Build-Produkt
Partitionen)
Im zweiten Fall kann die Anbieterpartition separat aktualisiert werden. können hier gehostete Apps nicht auf @hide-System-APIs zugreifen. Je nach Speicherort der vorinstallierten Apps können Updates als Onlinereisebüro (siehe OTA-Updates) oder über die App aus einem App-Shop aktualisieren.
Personalisierung
Wie bereits erwähnt, Automobilspezifische Konzepte Einheitlichkeit und Anpassung der Benutzeroberfläche/UX sind in der Automobilbranche wichtiger als bei jedem anderen Formfaktor. Für maximale Interoperabilität ist die Verwendung des AAOS Die Car UI-Bibliothek wird dringend empfohlen. Diese Bibliothek enthält Komponenten und Ressourcen, die in die Automobilbranche integriert werden können. Apps, die von OEMs angepasst werden. So kann ein einzelnes APK in einem sodass die Benutzeroberfläche an das Design des jeweiligen Automodells angepasst werden kann.