Partage avec l'Assistant

Les utilisateurs de téléphones Android peuvent demander à l'Assistant Google de partager le contenu d'une application avec un autre utilisateur à l'aide d'une commande vocale, par exemple Hey Google, envoie ceci à Jane. En fonction des options système du premier utilisateur, l'Assistant peut ensuite intégrer le texte de l'écran ou une capture d'écran d'un appareil au contenu partagé.

L'Assistant insère une photo sélectionnée dans un message lorsqu'il est invité à le faire.
Figure 1. L'Assistant partage une photo avec un contact.

Bien souvent, cette méthode de partage suffit, mais les utilisateurs qui reçoivent du contenu partagé depuis votre application n'ouvriront peut-être pas votre application à nouveau pour afficher le contenu envoyé. Vous pouvez fournir à l'Assistant des informations structurées sur le contenu actuel de premier plan en implémentant la méthode onProvideAssistContent().

Ce processus permet de maintenir la structure des données lors de leur partage avec un autre utilisateur. Les utilisateurs qui reçoivent du contenu d'application partagé peuvent ensuite recevoir un lien profond ou recevoir le contenu directement, plutôt que sous forme de texte ou de capture d'écran.

Implémentez onProvideAssistContent() pour tout entity partageable dans votre application.

Fournir des contenus à l'Assistant

Il vous suffit d'implémenter onProvideAssistContent() pour l'activité finale de l'application dans le flux de tâches de l'utilisateur après avoir appelé l'action dans l'application. Par exemple, dans un flux CREATE_MONEY_TRANSFER, implémentez la méthode dans l'écran final affichant le reçu. Vous n'avez pas besoin de l'implémenter pour les écrans en cours ou d'aperçu.

Fournissez des informations contextuelles sous forme d'objet JSON-LD à l'aide du vocabulaire schema.org dans le champ structuredData de AssistContent. L'extrait de code suivant montre un exemple de journalisation de contenu contextuel :

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();
}
      

Fournissez autant de données que possible sur chaque entity. Les champs suivants sont obligatoires:

  • @type
  • .name
  • .url (obligatoire uniquement si le contenu est adressable par URL)

Pour en savoir plus sur l'utilisation de onProvideAssistContent(), consultez le guide Optimiser le contenu contextuel pour l'Assistant.