Assistente Google per Wear OS

Gli assistenti vocali offrono scenari rapidi ed efficienti ovunque ti trovi. Voce le interazioni sugli indossabili sono dinamiche, il che significa che l'utente può parlare al proprio senza guardare necessariamente il dispositivo in attesa di una risposta.

Con le Azioni app dell'assistente, gli sviluppatori Android possono estendere le app per Wear OS alle Assistente Google, che inoltra velocemente gli utenti alle app con comandi vocali come "Hey Google, inizia la mia corsa su ExampleApp."

Limitazioni

L'assistente su Wear supporta le interazioni delle attività con il monitoraggio dei contenuti multimediali e dell'attività fisica. Per indicazioni sull'integrazione delle app multimediali con l'assistente; vedi Assistente Google e app multimediali. I seguenti intent integrati di salute e fitness sono supportati per App per Wear OS:

Come funziona

Le Azioni app estendono la funzionalità delle app all'assistente, consentendo agli utenti di accedere all'app funzionalità rapidamente usando la voce. Quando un utente indica all'assistente che vuole usare la tua app, l'assistente cerca le Azioni app registrate sul tuo nella risorsa shortcuts.xml dell'app.

Le Azioni app sono descritte in shortcuts.xml con elementi Capacità di Android. Coppia di intent integrati (BII), che sono semantici descrizioni di funzionalità di app, con istruzioni di completamento, come una modello link. Quando carichi l'app utilizzando Google Play Console, Google registra le funzionalità dichiarate in shortcuts.xml, rendendole disponibili che gli utenti possono attivare dall'assistente.

Flusso Azioni app

Il diagramma precedente mostra un utente che mette in pausa l'allenamento in una sessione dell'app. Vengono eseguiti i seguenti passaggi:

  1. L'utente invia una richiesta vocale all'assistente per l'app indossabile specifica.
  2. L'assistente abbina la richiesta a un modello preaddestrato (BII) ed estrae qualsiasi i parametri trovati nella query che sono supportati dall'intent integrato.
  3. Nell'esempio, l'assistente associa la query all'intent integrato PAUSE_EXERCISE, ed estrae il parametro del nome dell'allenamento, "escursionismo".
  4. L'app viene attivata tramite il completamento delle funzionalità shortcuts.xml. per questo intent integrato.
  5. L'app elabora l'evasione e mette in pausa l'allenamento.

Connettività

Lo sviluppo di Azioni app varia a seconda della funzionalità dell'app in l'ecosistema di dispositivi Android.

  • Con tethering: quando un'app indossabile dipende completamente dall'app mobile le query dell'utente rivolte all'assistente tramite l'orologio vengono risolte. sul dispositivo mobile. La logica di fulfillment delle Azioni app deve essere integrata nella app mobile per far funzionare correttamente questo scenario.

  • Senza tethering. Quando un'app indossabile è indipendente da un'app mobile per l'assistente risponde alle query degli utenti localmente sull'orologio. Per app Le funzionalità delle azioni devono essere integrate nell'app indossabile affinché queste richieste eseguire in modo adeguato.

di Gemini Advanced.

Aggiungi funzionalità vocali a Wear

Per integrare le Azioni app con l'app per Wear OS, segui questi passaggi:

  1. Abbina la funzionalità in-app per cui vuoi attivare l'opzione vocale un intent integrato corrispondente.
  2. Dichiara il supporto per le scorciatoie Android nella tua attività principale AndroidManifest.xml risorsa.

    <!-- AndroidManifest.xml -->
    <meta-data
        android:name="android.app.shortcuts"
        android:resource="@xml/shortcuts" />
    
  3. Aggiungi un elemento <intent-filter> al file AndroidManifest.xml. Ciò consente L'assistente può usare i link diretti per collegarti ai contenuti della tua app.

  4. Crea scorciatoie.xml per fornire i dettagli di completamento per i tuoi intent integrati. Utilizzi Elementi della scorciatoia capability per dichiarare all'assistente gli intent integrati della tua app Google Cloud. Per ulteriori informazioni, vedi Aggiungere funzionalità.

  5. In shortcuts.xml, implementa una funzionalità per l'intent integrato che hai scelto. La l'esempio seguente mostra una funzionalità per l'intent integrato START_EXERCISE:

    <?xml version="1.0" encoding="utf-8"?>
    <!-- This is a sample shortcuts.xml -->
    <shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
      <capability android:name="actions.intent.START_EXERCISE">
        <intent
          android:action="android.intent.action.VIEW"
          android:targetPackage="YOUR_UNIQUE_APPLICATION_ID"
          android:targetClass="YOUR_TARGET_CLASS">
          <!-- Eg. name = "Running" -->
          <parameter
            android:name="exercise.name"
            android:key="name"/>
          <!-- Eg. duration = "PT1H" -->
          <parameter
            android:name="exercise.duration"
            android:key="duration"/>
        </intent>
      </capability>
    </shortcuts>
    
  6. Se applicabile, espandi il supporto delle varianti vocali dell'utente utilizzando un inventario in linea, che rappresenta funzionalità e contenuti della tua app.

    <capability android:name="actions.intent.START_EXERCISE">
      <intent
        android:targetPackage="com.example.myapp"
        android:targetClass="com.example.myapp.ExerciseActivity">
        <parameter android:name="exercise.name" android:key="exercise" />
      </intent>
    </capability>
    
    <shortcut android:shortcutId="CARDIO_RUN">
      <capability-binding android:key="actions.intent.START_EXERCISE">
        <parameter-binding
          android:key="exercise.name"
          android:value="@array/run_names" />
        </capability-bindig>
    </shortcut>
    
  7. Aggiorna la logica della tua app per gestire il completamento delle Azioni app in arrivo.

    //FitMainActivity.kt
    
    private fun handleIntent(data: Uri?) {
        var actionHandled = true
        val startExercise = intent?.extras?.getString(START_EXERCISE)
    
        if (startExercise != null){
            val type = FitActivity.Type.find(startExercise)
            val arguments = Bundle().apply {
                putSerializable(FitTrackingFragment.PARAM_TYPE, type)
            }
            updateView(FitTrackingFragment::class.java, arguments)
        }
        else{
            showDefaultView()
            actionHandled = false
        }
        notifyActionSuccess(actionHandled)
    }
    

Visualizzare l'anteprima, testare e pubblicare l'app

Le Azioni app offrono strumenti per esaminare e testare la tua app. Per informazioni più dettagliate informazioni, consulta l'articolo sul plug-in dell'Assistente Google per Android Studio. Dopo aver ottenuto hai testato la tua app e creato una release di test, puoi richiedere un Revisione e deployment delle Azioni app. Consulta le seguenti best practice per indicazioni sulla gestione degli errori più comuni.

Best practice

Crea un'esperienza utente positiva integrando la tua app con l'assistente seguendo queste best practice consigliate.

Mostra una schermata di conferma corrispondente o pertinente, insieme alla tecnologia aptica e feedback audio, per rispondere alla richiesta di un utente, quando soddisfare una richiesta o avvisare in caso di errore.

Qualità di base Migliore qualità Migliore qualità
  • Crea un intent per iniziare a ConfirmationActivity da un'attività.
  • Crea un intent per iniziare a ConfirmationActivity da un'attività.
  • Riproduci un suono E un feedback aptico per indicare lo stato attuale.
  • Crea un intent per iniziare a ConfirmationActivity da un'attività.
  • Text-to-Speech (TTS) e feedback aptico per indicare un errore o un esito positivo.

Errori comuni e soluzioni

Per i seguenti casi di errore, usa la seguente app consigliata Messaggistica di ConfirmationActivity.

Caso di errore Esempio di interazione dell'utente Risposta dell'app
Attività già in corso "Inizia il mio NomeAllenamento"
"Riprendi il mio Nome Allenamento"
Errore di visualizzazione: Attività già in corso."
Nessuna attività avviata "Metti in pausa/interrompi il mio AllenamentoName" Errore di visualizzazione: "Nessuna attività iniziata".
Mancata corrispondenza dei tipi di attività "Metti in pausa/Interrompi AllenamentoName"," che è un tipo di allenamento diverso dall'attività in corso. Errore visualizzato: "Tipo di attività non corrispondente".
Errore di accesso "Inizia il mio NomeAllenamento" quando l'utente non ha eseguito l'accesso all'app. Riproduci la tecnologia aptica per avvisare l'utente e reindirizzare alla schermata di accesso.
Errore relativo alle autorizzazioni L'utente non dispone dell'autorizzazione per avviare l'attività richiesta. Riproduci la tecnologia aptica per avvisare l'utente e reindirizzare alla schermata di richiesta di autorizzazione.
Problema relativo al sensore L'utente ha disattivato i servizi di geolocalizzazione nelle impostazioni del dispositivo. Riproduci la tecnologia aptica per avvisare gli utenti e mostrare la schermata di errore del sensore. Passaggi successivi facoltativi:
  • Inizia l'attività senza il monitoraggio del sensore e invia una notifica all'utente.
  • Richiedi il riconoscimento dell'utente per avviare un'attività senza il monitoraggio dei sensori.