با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
Read It یک ویژگی دستیار Google است که در دستگاههای اندرویدی موجود است که راه دیگری را برای خواندن محتوای طولانی وب مانند مقالات خبری و پستهای وبلاگ به کاربران ارائه میدهد. کاربران می توانند چیزی مانند "Hey Google, read it" را بگویند تا یک برنامه محتوای مبتنی بر وب را با صدای بلند بخواند، کلمات در حال خواندن را برجسته کند و صفحه را به صورت خودکار اسکرول کند. برای کسب اطلاعات بیشتر در مورد این ویژگی، میتوانید پست بهروزرسانی محصول Read It را نیز مطالعه کنید.
شکل 1. گوش دادن به یک برنامه که محتوای وب را با صدای بلند می خواند.
برنامههای Android با محتوای مبتنی بر وب میتوانند با ارائه اطلاعات به Assistant با استفاده از روش onProvideAssistContent() Read It را پشتیبانی کنند.
این فرآیند به حفظ ساختار دادهها که با Assistant به اشتراک گذاشته میشود، کمک میکند. کاربرانی که محتوای برنامه به اشتراک گذاشته شده را دریافت می کنند، می توانند به جای متن یا اسکرین شات، به صورت عمیق پیوند داده شوند یا محتوا را مستقیماً دریافت کنند.
onProvideAssistContent() را برای هر محتوای مبتنی بر وب و هر entity قابل اشتراک گذاری در برنامه خود پیاده کنید.
ارائه محتوا به دستیار
برای اینکه Read It بتواند به محتوای شما دسترسی داشته باشد، برنامه شما باید اطلاعاتی درباره محتوا، مانند URI وب و برخی زمینه های اساسی، به دستیار ارائه دهد. سپس دستیار می تواند محتوای شما را بازیابی کند تا با صدای بلند برای کاربر خوانده شود.
برای برنامههای Android که قبلاً محتوای مبتنی بر وب را با استفاده از WebViews یا تبهای سفارشی Chrome پیادهسازی میکنند، از همان URIهای وب برای Read It به عنوان نقطه شروع استفاده کنید.
هنگامی که عملکرد Read It را با مقاصد داخلی ترکیب میکنید، فقط باید onProvideAssistContent() برای فعالیت نهایی برنامه در جریان کار کاربر پس از فراخوانی App Action پیادهسازی کنید.
به عنوان مثال، اگر برنامه شما مقالات خبری را نمایش می دهد، onProvideAssistContent() را در صفحه نهایی که مقاله را نشان می دهد پیاده سازی کنید. شما نیازی به اجرای آن برای هر صفحه نمایش در حال پیشرفت یا پیش نمایش ندارید.
قطعه کد زیر نمونه ای از ارائه محتوا به Assistant را نشان می دهد:
کاتلین
overridefunonProvideAssistContent(outContent:AssistContent){super.onProvideAssistContent(outContent)// Set the web URI for content to be read from a// WebView, Chrome Custom Tab, or other sourcevalurlString=url.toString()outContent.setWebUri(Uri.parse(urlString))// Create JSON-LD object based on schema.org structured datavalstructuredData=JSONObject().put("@type","Article").put("name","ExampleName of blog post").put("url",outContent.getWebUri()).toString()outContent.setStructuredData(structuredData)}
جاوا
@OverridepublicvoidonProvideAssistContent(AssistContentoutContent){// Set the web URI for content to be read from a// WebView, Chrome Custom Tab, or other sourceStringurlString=url.toString();outContent.setWebUri(Uri.parse(urlString));try{// Create JSON-LD object based on schema.org structured dataStringstructuredData=newJSONObject().put("@type","Article").put("name","ExampleName of blog post").put("url",outContent.getWebUri()).toString();outContent.setStructuredData(structuredData);}catch(JSONExceptionex){// Handle exceptionLog.e(TAG,ex.getMessage());}super.onProvideAssistContent(outContent);}
هنگام پیاده سازی onProvideAssistContent() ، تا حد امکان داده های بیشتری را در مورد هر entity ارائه دهید. فیلدهای زیر الزامی است:
@type
.name
.url (فقط در صورتی لازم است که محتوا دارای آدرس URL باشد)
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-08-08 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-08-08 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Read It is a Google Assistant feature available on Android devices that offers\nanother way for users to read long-form web content like news articles and\nblog posts. Users can say something like *\"Hey Google, read it\"* to have an app\nread web-based content out loud, highlight the words being read, and auto-scroll\nthe page. To learn more about this feature, you can also read the\n[Read It product update post](https://www.blog.google/products/assistant/easier-access-web-pages-let-assistant-read-it-aloud/).\n**Figure 1.** Listening to an app read web content out loud.\n\nAndroid apps with web-based content can support Read It by providing information\nto Assistant using the [`onProvideAssistContent()`](/reference/android/app/Activity#onProvideAssistContent(android.app.assist.AssistContent)) method.\n\nThis process helps maintain the structure of data as it's shared with\nAssistant. Users who receive shared app content can then be deep linked or\nreceive content directly, instead of as text or a screenshot.\n\nImplement `onProvideAssistContent()` for any web-based content\nand any sharable [`entity`](/guide/app-actions/legacy/action-schema#entity) in your app.\n\nProvide content to Assistant\n----------------------------\n\nFor Read It to access your content, your app must provide Assistant with\ninformation about the content, like its web URI and some basic context.\nAssistant can then retrieve your content to be read out loud to the user.\n\nFor\nAndroid apps that already implement [web-based content](/guide/webapps) using WebViews or\nChrome Custom Tabs, use the same web URIs for Read It as a\nstarting point.\n\nWhen combining Read It functionality with built-in intents, you only need to\nimplement `onProvideAssistContent()` for the final app activity in the user's\ntask flow after invoking the App Action.\n\nFor example, if your app displays\nnews articles, implement `onProvideAssistContent()` in the final screen\nshowing the article; you don't need to implement it for any in-progress or\npreview screens.\n\nProvide a web URI for your content in the `uri` field of [`AssistContent`](/reference/android/app/assist/AssistContent).\nProvide contextual information as a [JSON-LD](//json-ld.org/) object\n[using schema.org vocabulary](https://schema.org/docs/documents.html) in the\n`structuredData` field.\n| **Note:** Read It functionality is not available for content that requires authentication, such as articles locked for users without a subscription.\n\nThe following code snippet shows an example of providing content to Assistant: \n\n### Kotlin\n\n```kotlin\noverride fun onProvideAssistContent(outContent: AssistContent) {\n super.onProvideAssistContent(outContent)\n\n // Set the web URI for content to be read from a\n // WebView, Chrome Custom Tab, or other source\n val urlString = url.toString()\n outContent.setWebUri(Uri.parse(urlString))\n\n // Create JSON-LD object based on schema.org structured data\n val structuredData = JSONObject()\n .put(\"@type\", \"Article\")\n .put(\"name\", \"ExampleName of blog post\")\n .put(\"url\", outContent.getWebUri())\n .toString()\n outContent.setStructuredData(structuredData)\n}\n```\n\n### Java\n\n```java\n@Override\npublic void onProvideAssistContent(AssistContent outContent) {\n\n // Set the web URI for content to be read from a\n // WebView, Chrome Custom Tab, or other source\n String urlString = url.toString();\n outContent.setWebUri(Uri.parse(urlString));\n\n try {\n // Create JSON-LD object based on schema.org structured data\n String structuredData = new JSONObject()\n .put(\"@type\", \"Article\")\n .put(\"name\", \"ExampleName of blog post\")\n .put(\"url\", outContent.getWebUri())\n .toString();\n outContent.setStructuredData(structuredData);\n } catch (JSONException ex) {\n // Handle exception\n Log.e(TAG, ex.getMessage());\n }\n\n super.onProvideAssistContent(outContent);\n}\n```\n\nWhen implementing `onProvideAssistContent()`, provide as much\ndata as possible about each `entity`. The following\nfields are required:\n\n- `@type`\n- `.name`\n- `.url` (only required if the content is URL-addressable)\n\nTo learn more about using [`onProvideAssistContent()`](/reference/android/app/Activity#onProvideAssistContent(android.app.assist.AssistContent)), see the\n[Optimizing Contextual Content for the Assistant](/training/articles/assistant) guide in\nthe Android developer documentation."]]