“阅读”是 Android 设备上提供的 Google 助手功能,它为用户提供了另一种阅读长篇网页内容(如新闻文章和博客文章)的方式。用户可以说类似“嘿 Google,阅读它”之类的话,让应用大声朗读网页内容,突出显示正在朗读的文字,并自动滚动页面。要了解有关此功能的更多信息,您还可以阅读“阅读”产品更新帖子。
包含网页内容的 Android 应用可以通过使用onProvideAssistContent()
方法向助手提供信息来支持“阅读”。
此过程有助于在与助手共享数据时维护数据的结构。接收共享应用内容的用户随后可以进行深层链接或直接接收内容,而不是作为文本或屏幕截图。
为应用中的任何网页内容和任何可共享的实体
实施onProvideAssistContent()
。
向助手提供内容
为了让“阅读”能够访问您的内容,您的应用必须向助手提供有关内容的信息,例如其网页 URI 和一些基本上下文。然后,助手可以检索您的内容,以便将其大声朗读给用户。
对于已经使用 WebView 或 Chrome 自定义标签实施网页内容的 Android 应用,请将相同的网页 URI 作为“阅读”的起点。
当将“阅读”功能与内置意图结合使用时,您只需要为用户在调用应用操作后任务流中的最终应用活动实施onProvideAssistContent()
。
例如,如果您的应用显示新闻文章,请在显示文章的最终屏幕中实施onProvideAssistContent()
;您无需为任何正在进行的或预览屏幕实施它。
在AssistContent
的uri
字段中为您的内容提供网页 URI。作为JSON-LD对象使用 schema.org 词汇表在structuredData
字段中提供上下文信息。
以下代码片段显示了向助手提供内容的示例
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()
时,请尽可能多地提供有关每个实体
的数据。以下字段是必需的
@type
.name
.url
(仅当内容可通过 URL 定位时才需要)
要了解有关使用onProvideAssistContent()
的更多信息,请参阅 Android 开发者文档中的优化助手的上下文内容指南。