Azioni app per le auto

Grazie ai comandi vocali, i conducenti possono svolgere diverse attività senza staccare le mani dal volante e senza staccare gli occhi dalla strada. Con Azioni app per le app per auto, i conducenti possono usare l'Assistente Google per controllare le app Android sul loro sistema di infotainment dicendo, ad esempio, "Hey Google, trova parcheggio in strada su ExampleApp".

La funzionalità Azioni app funziona con le app per auto dei punti di interesse (PDI). Questa guida illustra i requisiti e le limitazioni specifici per l'integrazione di Azioni app nella tua app per PDI.

Come funziona

Le Azioni app estendono la tua funzionalità in-app all'assistente, consentendo agli utenti di accedere alle funzionalità dell'app tramite comandi vocali. Quando un utente richiama un'azione app, l'assistente abbina la query a un intent integrato (BII) dichiarato nella risorsa shortcuts.xml dell'app e avvia l'app nella schermata richiesta.

Dichiari il supporto delle BI nella tua app utilizzando gli elementi capability di Android. Quando carichi la tua app utilizzando Google Play Console, Google registra le funzionalità dichiarate nell'app e le rende disponibili per l'accesso tramite l'assistente da parte degli utenti.

Grafico che mostra la distribuzione auto.

  1. Un utente attiva l'assistente ed effettua una richiesta vocale per un'app specifica.
  2. L'assistente associa la richiesta a un modello preaddestrato (BII) ed estrae tutti i parametri supportati da BII.
  3. In questo esempio, l'assistente abbina la query alla BII GET_CHARGING_STATION, estrae il parametro di località "SFO" e traduce la località nelle sue coordinate geografiche.
  4. L'app viene attivata tramite la sua definizione di fulfillment per questo BII.
  5. L'app elabora la distribuzione, mostrando le opzioni delle stazioni di ricarica nel sistema di infotainment del conducente.

Limitazioni

Le implementazioni auto di Azioni app presentano le seguenti limitazioni:

Requisiti

Per preparare l'app dell'auto per la funzionalità Azioni app, procedi nel seguente modo:

  • Soddisfare i requisiti generali per le app per Android per Azioni app.
  • Includere la dipendenza dalla libreria delle app per auto. Per maggiori dettagli, consulta Dichiarazione delle dipendenze.

Determina la tua intenzione e il tuo adempimento

Il primo passaggio per attivare i comandi vocali di un'app per auto con Azioni app consiste nel determinare gli intent o i comandi vocali dell'utente supportati dall'app. Puoi quindi definire un fulfillment per ciascun intent per specificare in che modo la tua app deve soddisfare la richiesta.

  • Quali sono gli intent supportati dalla tua app per la tua auto?

    Azioni app fornisce modelli vocali preaddestrati, chiamati intent integrati (BII), in grado di comprendere e interpretare i comandi vocali di un utente quando dice "Hey Google". Per rispondere alle richieste vocali, devi semplicemente dichiarare all'assistente i BII supportati dalla tua app. Ad esempio, se vuoi che la tua app ti aiuti a trovare un parcheggio, devi implementare lo standard BII GET_PARKING_FACILITY. In alternativa, puoi implementare lo strumento GET_CHARGING_STATION BII per aiutare gli utenti a trovare stazioni di ricarica per auto elettriche.

  • In che modo la tua app dovrebbe soddisfare ogni intento?

    L'app soddisfa la richiesta vocale aprendola alla schermata appropriata. Azioni app fornisce al tuo fulfillment parametri estratti dalla richiesta dell'utente, consentendoti di personalizzare la risposta in base alle esigenze dell'utente.

Integra Azioni app

Dopo aver stabilito la tua strategia di distribuzione, segui questi passaggi per attivare le app vocali:

  1. Apri l'attività principale AndroidManifest.xml e dichiara il supporto per le scorciatoie Android. Puoi usare gli elementi scorciatoia capability per dichiarare all'assistente le BII supportate dalla tua app. Per maggiori informazioni, consulta Aggiungere funzionalità.

     <!-- AndroidManifest.xml -->
     <meta-data
         android:name="android.app.shortcuts"
         android:resource="@xml/shortcuts" />
    
  2. Aggiungi un elemento <intent-filter> a AndroidManifest.xml. In questo modo l'assistente può usare i link diretti per connettersi ai contenuti della tua app.

    • Per Android Auto, l'elemento <intent-filter> è uguale a quello dell'app mobile.

    • Sul sistema operativo Android Automotive, la sessione CarAppService dell'app attiva l'assistente. Per consentire a una sessione di attivare il link diretto, specifica un <intent-filter> nell'elemento <activity> di AndroidManifest.xml.

    <!-- AndroidManifest.xml -->
    <activity
      ...
      android:name="androidx.car.app.activity.CarAppActivity">
      ...
      <intent-filter>
          <action android:name="android.intent.action.VIEW" />
          <category android:name="android.intent.category.DEFAULT" />
          <category android:name="android.intent.category.BROWSABLE" />
          <data
            android:scheme="YOUR_SCHEME"
            android:host="YOUR_HOST" />
      </intent-filter>
    </activity>
    
  3. Se non hai ancora un file shortcuts.xml nella directory res/xml della tua app, creane una nuova. Per informazioni su come Azioni app utilizza le scorciatoie Android, consulta Crea scorciatoie.xml.

    In shortcuts.xml, implementa un capability per lo BII scelto. Quindi, aggiungi un elemento <intent> nidificato per definire il fulfillment dell'app.

    <!-- shortcuts.xml -->
    <?xml version="1.0" encoding="utf-8"?>
    <shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
    
      <capability android:name="actions.intent.GET_PARKING_FACILITY">
        <intent>
          <url-template
          android:value="YOUR_SCHEME://YOUR_HOST{?name,address,disambiguatingDescription,latitude,longitude}">
    
          <!-- Facility name, e.g. "Googleplex" -->
          <parameter
            android:name="parkingFacility.name"
            android:key="name"/>
          <!-- Address, e.g. "1600 Amphitheatre Pkwy, Mountain View, CA 94043" -->
          <parameter
            android:name="parkingFacility.address"
            android:key="address"/>
          <!-- Disambiguate the type of service, e.g. "valet" -->
          <parameter
            android:name="parkingFacility.disambiguatingDescription"
            android:key="disambiguatingDescription"/>
          <!-- Latitude, e.g. "37.3861" -->
          <parameter
            android:name="parkingFacility.geo.latitude"
            android:key="latitude"/>
          <!-- Longitude, e.g. "-122.084" -->
          <parameter
            android:name="parkingFacility.geo.longitude"
            android:key="longitude"/>
        </intent>
      </capability>
    </shortcuts>
    
  4. Infine, aggiorna la logica Session() dell'app dell'auto per gestire il fulfillment di Azioni app in arrivo. I seguenti esempi mostrano la gestione degli intent per Session.onCreateScreen() e Session.onNewIntent().

    onCreateScreen()

    Kotlin

    @Override
    fun onCreateScreen(@NonNull intent: Intent): Screen {
      if (intent.getData() != null) {
          val uri: Uri = intent.getData()
          // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center"
          // Build your Templates with parsed uri parameters
      ...
     }
    }
    

    Java

    @Override
    public Screen onCreateScreen(@NonNull Intent intent) {
    if (intent.getData() != null) {
      Uri uri = intent.getData();
      // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center"
      // Build your Templates with parsed uri parameters
    ...
    }
    }
    

    onNewIntent()

    Kotlin

    @Override
    fun onNewIntent(@NonNull intent: Intent): Screen {
      if (intent.getData() != null) {
          val uri: Uri = intent.getData()
          // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center"
          // Build your Templates with parsed uri parameters
          ...
      }
    }
    

    Java

    @Override
    public void onNewIntent(@NonNull Intent intent) {
    if (intent.getData() != null) {
     Uri uri = intent.getData();
     // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center"
     // Build your Templates with parsed uri parameters
     ...
    }
    }
    

Visualizzare l'anteprima, testare e pubblicare l'app

La funzionalità Azioni app fornisce strumenti per visualizzare in anteprima e testare la tua app. Visita la panoramica di Azioni app per avere informazioni su questi strumenti e per informazioni dettagliate su come pubblicare l'app per auto per auto con attivazione vocale sul Play Store.