Condivisione con l'assistente

Gli utenti di telefoni Android possono chiedere all'Assistente Google di condividere i contenuti dell'app con un altro utente utilizzando un comando vocale come "Hey Google, invia questo a Sara". In base alle opzioni di sistema del primo utente, l'assistente può incorporare nei contenuti condivisi del testo dello schermo o di uno screenshot del dispositivo.

L'assistente inserisce una foto selezionata in un messaggio quando richiesto.
Figura 1. L'assistente condivide una foto con un contatto.

Questo metodo di condivisione è spesso sufficiente, ma gli utenti che ricevono contenuti condivisi dalla tua app potrebbero non accedere nuovamente all'app per visualizzare i contenuti. Puoi fornire all'assistente informazioni strutturate sui contenuti in primo piano attuali implementando il metodo onProvideAssistContent().

Questo processo consente di mantenere la struttura dei dati quando vengono condivisi con un altro utente. Gli utenti che ricevono contenuti di app condivisi possono quindi utilizzare link diretti o ricevere i contenuti direttamente, anziché sotto forma di testo o screenshot.

Implementa onProvideAssistContent() per qualsiasi elemento entity condivisibile nella tua app.

Fornisci contenuti all'assistente

Devi implementare onProvideAssistContent() solo per l'attività finale dell'app nel flusso di attività dell'utente dopo aver richiamato l'Azione app. Ad esempio, in un flusso CREATE_MONEY_TRANSFER, implementa il metodo nella schermata finale che mostra la ricevuta; non è necessario implementarlo per le schermate in corso o di anteprima.

Fornisci informazioni contestuali come oggetto JSON-LD utilizzando il vocabolario di schema.org nel campo structuredData di AssistContent. Il seguente snippet di codice mostra un esempio di registrazione di contenuti contestuali:

Kotlin
override fun onProvideAssistContent(outContent: AssistContent) {
    super.onProvideAssistContent(outContent)

    // JSON-LD object based on Schema.org structured data
    outContent.structuredData = JSONObject()
            .put("@type", "MenuItem")
            .put("name", "Blueberry Crisp Iced Signature Latte")
            .put("url", "https://mysite.com/menuitems/12345a")
            .toString()
}
      
Java
@Override
public void onProvideAssistContent(AssistContent outContent) {
  super.onProvideAssistContent(outContent);

  // JSON-LD object based on Schema.org structured data
  outContent.structuredData = new JSONObject()
          .put("@type", "MenuItem")
          .put("name", "Blueberry Crisp Iced Signature Latte")
          .put("url", "https://mysite.com/menuitems/12345a")
          .toString();
}
      

Fornisci il maggior numero possibile di dati su ogni entity. I seguenti campi sono obbligatori:

  • @type
  • .name
  • .url (obbligatorio solo se i contenuti sono con indirizzi URL)

Per scoprire di più sull'utilizzo di onProvideAssistContent(), consulta la guida Ottimizzazione dei contenuti contestuali per l'assistente.