Abläufe für die Integration

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

Standard-Apps auf dem Einstellungsbildschirm

Abbildung 1: Standard-Apps auf dem Einstellungsbildschirm

Die ausgewählte VIA wird dem System auf zwei Arten zugänglich gemacht:

  1. Im Rahmen der RolesManager Systemdienst
  2. Von VoiceInteractionManagerService bis AssistUtils 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.

Hotword-Erkennung

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 an VoiceInteractionManagerService, 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.

PTT-Trigger

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.

Tippen-to-Talk-Trigger

Abbildung 4: Tippen-to-Talk-Trigger

Sprachassistent: Tap-to-Read (TTR)

In Automotive wurden im Benachrichtigungscenter veröffentlichte Benachrichtigungen als INBOX- 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.

Benachrichtigungen

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.