تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
Read It هي إحدى ميزات "مساعد Google" المتوفّرة على أجهزة Android التي توفّر
طريقة أخرى للمستخدمين لقراءة محتوى الويب الطويل مثل المقالات الإخبارية
مشاركات المدونة. يمكن للمستخدمين قول "Ok Google، أريد قراءة الرسالة" للحصول على تطبيق
قراءة المحتوى المستند إلى الويب بصوت عالٍ وتمييز الكلمات التي تتم قراءتها والتمرير التلقائي
الصفحة. لمزيد من المعلومات عن هذه الميزة، يمكنك أيضًا قراءة
مشاركة جديدة حول منتج Read It
الشكل 1. الاستماع إلى تطبيق لقراءة محتوى الويب بصوت عالٍ
يمكن لتطبيقات Android التي تتضمّن محتوى مستنِدًا إلى الويب دعم ميزة "القراءة" من خلال توفير المعلومات
إلى "مساعد Google" باستخدام الطريقة onProvideAssistContent().
تساعد هذه العملية في الحفاظ على هيكل البيانات كما تتم مشاركتها مع
مساعد Google ويمكن بعد ذلك ربط المستخدمين الذين يتلقون محتوى التطبيق المشترك بالتطبيق أو
تلقّي المحتوى مباشرةً، بدلاً من إرساله كنص أو لقطة شاشة
تنفيذ السمة onProvideAssistContent() لأي محتوى مستنِد إلى الويب
وأي entity قابل للمشاركة في تطبيقك.
تقديم المحتوى إلى "مساعد Google"
ليتمكّن تطبيق Read It من الوصول إلى المحتوى، يجب أن يوفّر التطبيق لخدمة "مساعد Google"
معلومات حول المحتوى، مثل عنوان URI على الويب وبعض السياقات الأساسية.
ويمكن لخدمة "مساعد Google" بعد ذلك استرداد المحتوى ليتمكن المستخدم من قراءته بصوت عالٍ.
بالنسبة
تطبيقات Android التي تنفّذ حاليًا محتوى مستنِدًا إلى الويب باستخدام مكوّنات WebView أو
علامات التبويب المخصصة في Chrome، استخدم نفس معرفات الموارد المنتظمة (URI) للويب لـ Read It
نقطة البداية.
عند الجمع بين وظيفة "قراءة النص" والعناصر المدمجة، ما عليك سوى إجراء ما يلي:
تنفيذ onProvideAssistContent() للنشاط النهائي على التطبيق في حساب المستخدم
مسار المهمة بعد استدعاء إجراء التطبيق.
على سبيل المثال، إذا كان تطبيقك يعرض
مقالات إخبارية، يمكنك تنفيذ onProvideAssistContent() في الشاشة النهائية
لعرض المقالة فلن تحتاج إلى تنفيذها لأية أعمال أو
وشاشات المعاينة.
قم بتوفير معرف موارد منتظم (URI) على الويب للمحتوى الخاص بك في الحقل uri من AssistContent.
تقديم معلومات سياقية على هيئة كائن JSON-LDباستخدام مفردات schema.org في
الحقل structuredData.
يعرض مقتطف الرمز التالي مثالاً على تقديم المحتوى إلى "مساعد Google":
Kotlin
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)}
Java
@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)
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java و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."]]