Lire

La fonctionnalité Lire de l'Assistant Google est disponible sur les appareils Android et offre aux utilisateurs un autre moyen de lire les longs contenus Web, tels que les articles de presse ou de blog. Par exemple, les utilisateurs peuvent dire "Hey Google, lis-moi ça" pour qu'une application lise le contenu Web à voix haute, mette en surbrillance les mots lus et fasse défiler automatiquement la page. Pour en savoir plus, vous pouvez également lire l'article de blog sur la mise à jour de la fonctionnalité Lire.

Lorsqu'une requête de lecture lui est envoyée, une application lit le contenu Web à l'écran à l'aide de l'Assistant Google.
Figure 1 : Écouter une application lire le contenu Web à voix haute

Les applications Android associées à du contenu Web peuvent utiliser la fonctionnalité Lire en fournissant les informations nécessaires à l'Assistant à l'aide de la méthode onProvideAssistContent().

Ce processus permet de conserver la structure des données partagées avec l'Assistant. 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 contenu Web et tout élément entity partageable dans votre application.

Fournir des contenus à l'Assistant

Pour que la fonctionnalité Lire puisse accéder au contenu, votre application doit fournir à l'Assistant des informations spécifiques, telles que son URI Web et des informations contextuelles de base. L'Assistant peut ainsi récupérer le contenu pour qu'il soit lu à voix haute.

Pour les applications Android qui implémentent déjà du contenu Web à l'aide de composants WebView ou d'onglets personnalisés Chrome, utilisez les mêmes URI Web pour la fonctionnalité Lire comme point de départ.

Lorsque vous combinez la fonctionnalité Lire avec des intents intégrés, vous n'avez besoin d'implémenter onProvideAssistContent() que 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, si votre application affiche des articles d'actualité, implémentez onProvideAssistContent() dans l'écran final qui affiche l'article. Vous n'avez pas besoin de l'implémenter pour les écrans de transition ou d'aperçu.

Indiquez un URI Web pour votre contenu dans le champ uri d'AssistContent. Fournissez des informations contextuelles sous forme d'objet JSON-LD en utilisant le vocabulaire schema.org dans le champ structuredData.

L'extrait de code suivant montre comment fournir le contenu à l'Assistant :

Kotlin

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

    // Set the web URI for content to be read from a
    // WebView, Chrome Custom Tab, or other source
    val urlString = url.toString()
    outContent.setWebUri(Uri.parse(urlString))

    // Create JSON-LD object based on schema.org structured data
    val structuredData = JSONObject()
        .put("@type", "Article")
        .put("name", "ExampleName of blog post")
        .put("url", outContent.getWebUri())
        .toString()
    outContent.setStructuredData(structuredData)
}

Java

@Override
public void onProvideAssistContent(AssistContent outContent) {

  // Set the web URI for content to be read from a
  // WebView, Chrome Custom Tab, or other source
  String urlString = url.toString();
  outContent.setWebUri(Uri.parse(urlString));

  try {
      // Create JSON-LD object based on schema.org structured data
      String structuredData = new JSONObject()
          .put("@type", "Article")
          .put("name", "ExampleName of blog post")
          .put("url", outContent.getWebUri())
          .toString();
      outContent.setStructuredData(structuredData);
  } catch (JSONException ex) {
      // Handle exception
      Log.e(TAG, ex.getMessage());
  }

  super.onProvideAssistContent(outContent);
}

Lorsque vous implémentez onProvideAssistContent(), 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 d'onProvideAssistContent(), consultez le guide Optimiser le contenu contextuel pour l'Assistant dans la documentation destinée aux développeurs Android.