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