読み上げ

読み上げは Android デバイスで利用できる Google アシスタントの機能であり、ニュース記事やブログ投稿のような長文のウェブ コンテンツを読むための代替手段をユーザーに提供します。「OK Google, 読み上げて」のように話しかけることで、アプリを入手できます。 ウェブベースのコンテンツの読み上げ、読み上げ中の単語のハイライト表示、自動スクロール 表示されます。この機能について詳しくは、読み上げプロダクトの最新情報に関する投稿もご覧ください。

プロンプトが表示されたら、アプリは Google アシスタントの助けを借りて画面上のウェブ コンテンツを読み上げます。
図 1. アプリでウェブ コンテンツの読み上げを聴く場合。

ウェブベースのコンテンツを含む Android アプリで読み上げをサポートするには、onProvideAssistContent() メソッドを使用してアシスタントに情報を提供します。

このプロセスは、アシスタントと共有されるデータの構造を維持するために役立ちます。共有されたアプリ コンテンツを受け取るユーザーは、ディープリンクされたり、コンテンツをテキストまたはスクリーンショットとしてではなく直接受け取ったりします。

ウェブベースのコンテンツに onProvideAssistContent() を実装します。 およびアプリ内の共有可能な entity

アシスタントにコンテンツを提供する

読み上げ機能でコンテンツにアクセスするには、コンテンツに関する情報(ウェブ URI や基本的なコンテキストなど)をアプリからアシスタントに提供する必要があります。アシスタントはコンテンツを取得して、ユーザーに対して読み上げることができます。

対象 WebView を使用してウェブベースのコンテンツをすでに実装している Android アプリ Chrome カスタムタブ。読み上げ機能と同じウェブ URI を 出発点になります。

読み上げ機能と組み込みインテントを組み合わせる場合、 onProvideAssistContent() をユーザーの タスクフローを実行します。

たとえば、アプリに ニュース記事、最終画面に onProvideAssistContent() を実装 記事を表示する進行中のイベントや プレビュー画面があります

AssistContenturi フィールドで、コンテンツのウェブ URI を指定します。structuredData フィールドで、schema.org ボキャブラリを使用する JSON-LD オブジェクトとして、コンテキスト情報を指定します。

次のコード スニペットは、アシスタントにコンテンツを提供する例を示しています。

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

onProvideAssistContent() を実装するときは、できるだけ多くの 各 entity について、可能な限り多くのデータが必要です。次のフィールドは必須です。

  • @type
  • .name
  • .url(コンテンツが URL アドレス指定可能な場合のみ必須)

onProvideAssistContent() の使用方法について詳しくは、Android デベロッパー向けドキュメントのアシスタント用にコンテキスト コンテンツを最適化するガイドをご覧ください。