تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
قناة "اقتراحات أخرى" هي الصف الثاني الذي يظهر في الشاشة الرئيسية، بعد
صف التطبيقات. ينشئ النظام هذه القناة ويحافظ عليها. يمكن لتطبيقك إضافة
البرامج إلى قناة "اقتراحات أخرى": البرامج التي صنّفها المستخدم
مثيرة للاهتمام، أو التوقف عن المشاهدة في الوسط، أو ذات صلة بالمحتوى
التي يشاهدها المستخدم (مثل الحلقة التالية في مسلسل أو الموسم التالي من
العرض).
تفرض قناة "اقتراحات أخرى" بعض القيود: لا يمكن لتطبيقك النقل أو الإزالة أو
إخفاء صف قناة "اقتراحات أخرى".
الخطوات
يشبه إدراج البرامج في قناة "اقتراحات أخرى"
إدراج برامج في قناتك
راجِع الأقسام التالية للحصول على تفاصيل حول "اقتراحات أخرى".
النشر على قناة "المشاهدة تاليًا" على Google TV (يظهر باسم "متابعة"
للمشاهدة") تتطلب موافقة مسبقة من Google من خلال عملية الحصول على شهادة اعتماد
المعالجة من جهة الخادم لفرز البرامج بناءً على سماتها.
لبدء عملية الحصول على الشهادة، يُرجى
أرسِل هذا النموذج المرتبط.
عند إدراج محتوى في قناة "اقتراحات أخرى"، يجب اتّباع الإرشادات التالية:
هناك أربعة أنواع من برامج "اقتراحات أخرى". اختَر النوع المناسب:
النوع
ملاحظات
WATCH_NEXT_TYPE_CONTINUE
توقف المستخدم أثناء مشاهدة المحتوى.
WATCH_NEXT_TYPE_NEXT
البرنامج المتاح التالي في سلسلة يشاهدها المستخدم
متاح. على سبيل المثال، إذا كان المستخدم يشاهد الحلقة 3 من المسلسل، يمكن للتطبيق أن يقترح مشاهدة الحلقة 4 بعد ذلك.
WATCH_NEXT_TYPE_NEW
يتوفّر الآن محتوى جديد يتّبع بوضوح ما يشاهده المستخدم. على سبيل المثال، يشاهد المستخدم الحلقة رقم 5 من مسلسل وتصبح الحلقة 6 متاحة للمشاهدة.
WATCH_NEXT_TYPE_WATCHLIST
يُدرجه النظام أو التطبيق عندما يحفظ المستخدم أحد البرامج.
استخدام TvContractCompat.buildWatchNextProgramUri(long watchNextProgramId) من أجل
لإنشاء Uri الذي تحتاجه لتحديث برنامج "اقتراحات أخرى".
عندما يضيف المستخدم برنامجًا إلى قناة "اقتراحات أخرى"، ينسخ النظام
البرنامج إلى الصف. يرسل intent
TvContractCompat.ACTION_PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT لإرسال إشعار إلى التطبيق.
أنه تمت إضافة البرنامج. يشمل الغرض عنصرَين إضافيَّين: رقم تعريف البرنامج.
الذي تم نسخه ومعرّف البرنامج الذي تم إنشاؤه للبرنامج في القسم "اقتراحات أخرى".
.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Add programs to the Watch Next channel\n\nThe Watch Next channel is the second row that appears in the home screen, after\nthe apps row. The system creates and maintains this channel. Your app can add\nprograms to the Watch Next channel: programs that the user marked as\ninteresting, stopped watching in the middle, or that are related to the content\nthe user is watching (like the next episode in a series or next season of a\nshow).\n| **Note:** On the home screen, the Watch Next channel has the label **Play Next** . However, the Android classes used to manage the Watch Next channel are [`WatchNextProgram`](/reference/androidx/tvprovider/media/tv/WatchNextProgram) and [`WatchNextPrograms`](/reference/android/media/tv/TvContract.WatchNextPrograms). They have methods and constants with the stem \"watchnext\".\n\nThe Watch Next channel has some constraints: your app cannot move, remove, or\nhide the Watch Next channel's row.\n\nSteps\n-----\n\nInserting programs into the Watch Next channel is similar to\n[inserting programs into your own channel](/training/tv/discovery/recommendations-channel#add-programs).\nSee the following sections for details specific to Watch Next.\n\nPublishing to the Watch Next channel on Google TV (displayed as \"Continue\nwatching\") requires prior approval by Google through a certification process and\nuses server-side processing to sort programs based on their attributes.\nTo start the certification process, please\nsubmit this [linked form](https://docs.google.com/forms/d/e/1FAIpQLSeaNhHjDNM8osXPgkXeUQMSl5CntaEw0EeGYHIAc5jxUhQuHg/viewform).\n\nWhen inserting content into the Watch Next channel, you must follow these guidelines:\n\n- [Watch Next guidelines for app developers](/training/tv/discovery/guidelines-app-developers)\n- [Watch Next guidelines for TV providers](/training/tv/discovery/guidelines-tv-providers)\n\n### Select a type of program\n\nThere are four types of Watch Next programs. Select the appropriate type:\n\n| Type | Notes |\n|-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `WATCH_NEXT_TYPE_CONTINUE` | The user stopped while watching content. |\n| `WATCH_NEXT_TYPE_NEXT` | The next available program in a series the user is watching is available. For example, if the user is watching episode 3 of a series, the app can suggest that they watch episode 4 next. |\n| `WATCH_NEXT_TYPE_NEW` | New content that clearly follows what the user is watching is now available. For example, the user is watching episode number 5 from a series and episode 6 becomes available for watching. |\n| `WATCH_NEXT_TYPE_WATCHLIST` | Inserted by the system or the app when the user saves a program. |\n\nFor more information, see [Watch Next attributes](/training/tv/discovery/watch-next-programs).\n\n### Use the WatchNextProgram builder\n\nUse a `WatchNextProgram.Builder`. For more information, see\n[Watch Next attributes](/training/tv/discovery/watch-next-programs). \n\n### Kotlin\n\n```kotlin\nval builder = WatchNextProgram.Builder()\nbuilder.setType(TvContractCompat.WatchNextPrograms.TYPE_MOVIE)\n .setWatchNextType(TvContractCompat.WatchNextPrograms.WATCH_NEXT_TYPE_CONTINUE)\n .setLastEngagementTimeUtcMillis(time)\n .setTitle(\"Title\")\n .setDescription(\"Program description\")\n .setPosterArtUri(uri)\n .setIntentUri(uri)\n .setInternalProviderId(appProgramId)\n\nval watchNextProgramUri = context.contentResolver\n .insert(TvContractCompat.WatchNextPrograms.CONTENT_URI,\n builder.build().toContentValues())\n```\n\n### Java\n\n```java\nWatchNextProgram.Builder builder = new WatchNextProgram.Builder();\nbuilder.setType(TvContractCompat.WatchNextPrograms.TYPE_MOVIE)\n .setWatchNextType(TvContractCompat.WatchNextPrograms.WATCH_NEXT_TYPE_CONTINUE)\n .setLastEngagementTimeUtcMillis(time)\n .setTitle(\"Title\")\n .setDescription(\"Program description\")\n .setPosterArtUri(uri)\n .setIntentUri(uri)\n .setInternalProviderId(appProgramId);\n\nUri watchNextProgramUri = context.getContentResolver()\n .insert(TvContractCompat.WatchNextPrograms.CONTENT_URI, builder.build().toContentValues());\n```\n\nUse `TvContractCompat.buildWatchNextProgramUri(long watchNextProgramId)` to\ncreate the `Uri` you need to update a Watch Next program.\n\nWhen the user adds a program to the Watch Next channel, the system copies the\nprogram to the row. It sends the intent\n`TvContractCompat.ACTION_PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT` to notify the app\nthat the program has been added. The intent includes two extras: the program ID\nthat was copied and the program ID created for the program in the Watch Next\nchannel."]]