読み上げは Android デバイスで利用できる Google アシスタントの機能であり、ニュース記事やブログ投稿のような長文のウェブ コンテンツを読むための代替手段をユーザーに提供します。「OK Google, 読み上げて」のように話しかけることで、アプリを入手できます。 ウェブベースのコンテンツの読み上げ、読み上げ中の単語のハイライト表示、自動スクロール 表示されます。この機能について詳しくは、読み上げプロダクトの最新情報に関する投稿もご覧ください。
![プロンプトが表示されたら、アプリは Google アシスタントの助けを借りて画面上のウェブ コンテンツを読み上げます。](https://developer.android.com/static/guide/app-actions/images/read-it-blog-post.gif?authuser=1&hl=ja)
ウェブベースのコンテンツを含む Android アプリで読み上げをサポートするには、onProvideAssistContent()
メソッドを使用してアシスタントに情報を提供します。
このプロセスは、アシスタントと共有されるデータの構造を維持するために役立ちます。共有されたアプリ コンテンツを受け取るユーザーは、ディープリンクされたり、コンテンツをテキストまたはスクリーンショットとしてではなく直接受け取ったりします。
ウェブベースのコンテンツに onProvideAssistContent()
を実装します。
およびアプリ内の共有可能な entity
。
アシスタントにコンテンツを提供する
読み上げ機能でコンテンツにアクセスするには、コンテンツに関する情報(ウェブ URI や基本的なコンテキストなど)をアプリからアシスタントに提供する必要があります。アシスタントはコンテンツを取得して、ユーザーに対して読み上げることができます。
対象 WebView を使用してウェブベースのコンテンツをすでに実装している Android アプリ Chrome カスタムタブ。読み上げ機能と同じウェブ URI を 出発点になります。
読み上げ機能と組み込みインテントを組み合わせる場合、
onProvideAssistContent()
をユーザーの
タスクフローを実行します。
たとえば、アプリに
ニュース記事、最終画面に onProvideAssistContent()
を実装
記事を表示する進行中のイベントや
プレビュー画面があります
AssistContent
の uri
フィールドで、コンテンツのウェブ 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 デベロッパー向けドキュメントのアシスタント用にコンテキスト コンテンツを最適化するガイドをご覧ください。