
يعمل إطار عمل إدخال Android TV (TIF) على تبسيط عرض المحتوى المباشر على Android TV. يوفّر Android TIF واجهة برمجة تطبيقات قياسية تتيح للشركات المصنّعة إنشاء وحدات إدخال للتحكّم في Android TV، كما تتيح البحث عن المحتوى المباشر على التلفزيون وتقديم اقتراحات من خلال البيانات الوصفية التي تنشرها وحدة إدخال التلفزيون.
لا يهدف إطار العمل إلى تنفيذ معايير التلفزيون أو متطلبات المناطق، ولكنه يسهّل على المصنّعين استيفاء معايير البث التلفزيوني الرقمي الإقليمية بدون إعادة التنفيذ. قد تكون المستندات الواردة في هذا القسم مفيدة أيضًا لمطوّري التطبيقات التابعين لجهات خارجية الذين يريدون إنشاء إدخالات تلفزيونية مخصّصة.
المكوّنات
يتضمّن تنفيذ إطار عمل إدخال Android TV "مدير إدخال التلفزيون". يعمل TIF مع تطبيق التلفزيون، وهو تطبيق نظام لا يمكن استبداله بتطبيق تابع لجهة خارجية، للوصول إلى القنوات المدمجة وقنوات IP. يتواصل تطبيق التلفزيون مع وحدات إدخال التلفزيون التي توفّرها الشركة المصنّعة للجهاز أو جهات أخرى من خلال "مدير إدخال التلفزيون".
يتكوّن إطار عمل إدخال التلفزيون من:
- مزوّد خدمة التلفزيون (
com.android.providers.tv.TvProvider
): قاعدة بيانات للقنوات والبرامج والأذونات المرتبطة بها - تطبيق التلفزيون (
com.android.tv.TvActivity
): التطبيق الذي يعالج تفاعل المستخدِم - "مدير إدخالات التلفزيون" (
android.media.tv.TvInputManager
): يسمح لإدخالات التلفزيون بالتواصل مع تطبيق التلفزيون - إدخال التلفزيون: تطبيق يمثّل أجهزة الاستقبال وفتحات الإدخال الفعلية أو الافتراضية
- واجهة HAL لإدخال التلفزيون (وحدة
tv_input
): تعريف للأجهزة يسمح لمصادر إدخال التلفزيون في النظام بالوصول إلى الأجهزة المخصّصة للتلفزيون عند تنفيذها - أدوات رقابة الأهل: التكنولوجيا التي تتيح حظر القنوات والبرامج
- HDMI-CEC: التكنولوجيا التي تتيح التحكّم عن بُعد في الأجهزة المختلفة عبر HDMI
- إطار عمل الموالف: إطار عمل لإدخال التلفزيون المزوّد بموالف مدمج
- MediaCas: إطار عمل للوصول المشروط
- أداة إدارة موارد أداة الاستقبال: خدمة لإدارة مورد الجهاز لإدخال التلفزيون، وMediaCas، وإدخال أداة الاستقبال المدمجة
وسنتناول هذه المكوّنات بالتفصيل أدناه. اطّلِع على الرسم البياني التالي للحصول على عرض تفصيلي لبنية Android TV Input Framework.

تدفق
في ما يلي كيفية تنفيذ هذه البنية:
- يرى المستخدم تطبيق التلفزيون ويتفاعل معه، وهو تطبيق نظام لا يمكن استبداله بتطبيق تابع لجهة خارجية.
- يعرض تطبيق التلفزيون محتوى الصوت والصورة من إدخال التلفزيون.
- لا يمكن لتطبيق YouTube TV التواصل مباشرةً مع إدخالات التلفزيون. يحدِّد "مدير إدخالات التلفزيون" حالة إدخالات التلفزيون لتطبيق التلفزيون. اطّلِع على مدير إدخالات التلفزيون أدناه للحصول على مزيد من التفاصيل حول هذه القيود.
الأذونات
- لا يمكن سوى
signatureOrSystem
لإدخالات التلفزيون وتطبيق التلفزيون الوصول الكامل إلى قاعدة بيانات مقدّم خدمة التلفزيون ويمكنهم تلقّي أحداث المفاتيح. - يمكن فقط لإدخالات التلفزيون في النظام الوصول إلى HAL لإدخال التلفزيون من خلال خدمة "مدير إدخال التلفزيون". يتم الوصول إلى إدخالات التلفزيون بشكلٍ فردي من خلال جلسات "مدير إدخالات التلفزيون" .
- يمكن لمدخلات التلفزيون التابعة لجهات خارجية الوصول إلى قاعدة بيانات مقدّم خدمات التلفزيون مقيّدًا بالحزمة، ولا يمكنها القراءة/الكتابة إلا في صفوف الحزمة المطابقة.
- يمكن لمنافذ إدخال التلفزيون التابعة لجهات خارجية عرض محتوى خاص بها أو محتوى من منافذ إدخال التلفزيون التي تتيح مرور الإشارات الخاصة بجهة تصنيع الجهاز، مثل HDMI1. لا يمكنها عرض المحتوى من مصادر غير قابلة للنقل في التلفزيون، مثل مُعدِّل قنوات IPTV أو مُعدِّل قنوات مدمج.
TV_INPUT_HARDWARE
إذن لتطبيق إدخال التلفزيون المزوّد بأجهزة، يُرسِل إشارة إلى خدمة "إدارة إدخالات التلفزيون" لإعلام خدمة "إدخال التلفزيون" عند بدء التشغيل للاتصال بخدمة "إدارة إدخالات التلفزيون" وإضافة مصادر إدخال التلفزيون. يتيح هذا الإذن لتطبيق إدخال التلفزيون المزوّد بأجهزة إمكانية استخدام عدّة إدخالات تلفزيونية لكل خدمة إدخال تلفزيوني، بالإضافة إلى إمكانية إضافة إدخالات تلفزيونية متوافقة وإزالتها بشكل ديناميكي.
مقدّم خدمة التلفزيون
تخزِّن قاعدة بيانات مزوّد خدمة التلفزيون القنوات والبرامج من مصادر بيانات التلفزيون. ينشر ومقدّم المحتوى التلفزيوني أيضًا الأذونات المرتبطة ويديرها لكي لا يتمكّن سوى مستخدمي "إدخالات التلفزيون" من الاطّلاع على سجلاتهم الخاصة. على سبيل المثال، يمكن لمصدر إدخال تلفزيوني معيّن الاطّلاع على القنوات والبرامج التي يوفّرها فقط، ولا يمكنه الوصول إلى القنوات والبرامج في مصادر إدخال تلفزيونية أخرى.
يربط مقدّم خدمة البث التلفزيوني "نوع البث" بـ "النوع الأساسي" داخليًا. إنّ إدخالات المحتوى التلفزيوني هي المسؤولة عن تعبئة حقل "نوع البث" بالقيمة الواردة في معيار البث الأساسي، وسيتم تلقائيًا تعبئة حقل "النوع الأساسي" بالنوع الصحيح المرتبط منandroid.provider.TvContract.Genres
. على سبيل المثال، مع بث محتوى تلفزيوني باستخدام معيار ATSC A/65 العادي وبرنامج يتضمّن النوع 0x25 (أي "رياضة")، سيعبئ مدخل التلفزيون حقل "نوع البث" باستخدام السلسلة "رياضة" وسيعبئ مقدّم المحتوى التلفزيوني حقل "النوع الأساسي" باستخدام القيمة المُحدَّدة android.provider.TvContract.Genres.SPORTS
.
اطّلِع على المخطّط البياني أدناه للحصول على عرض تفصيلي لمزوّد خدمة التلفزيون.

لا يمكن للتطبيقات في قسم النظام المميّز إلا قراءة قاعدة بيانات مقدّم خدمات التلفزيون بالكامل.
لا تخزِّن مدخلات التلفزيون التي تتيح نقل البيانات مباشرةً القنوات والبرامج.
بالإضافة إلى الحقول العادية للقنوات والبرامج، تقدّم قاعدة بيانات مقدّم خدمة التلفزيون
أيضًا حقلًا من النوع BLOB، COLUMN_INTERNAL_PROVIDER_DATA
،
في كل جدول يمكن أن تستخدمه مدخلات التلفزيون لتخزين بيانات عشوائية. يمكن أن تتضمّن بيانات BLOB
معلومات مخصّصة، مثل معدّل تكرار المُعدّل المرتبط، وقد يتم
تقديمها في وحدة تخزين مؤقت للبروتوكول أو شكل آخر. يتوفّر حقل قابل للبحث
لإخفاء قنوات معيّنة في نتائج البحث (مثلاً لتلبية متطلبات حماية المحتوى الخاصة بكل بلد).
أمثلة على حقول قاعدة البيانات
يتيح مزوّد المحتوى التلفزيوني استخدام البيانات المنظَّمة في جدولَي القناة
(android.provider.TvContract.Channels
) والبرنامج
(android.provider.TvContract.Programs
). تتم تعبئة هذه الجداول
والوصول إليها من خلال مصادر إدخال التلفزيون وتطبيقات النظام
مثل تطبيق التلفزيون. تحتوي هذه الجداول على أربعة أنواع من الحقول:
- العرض: تحتوي حقول العرض على معلومات قد تريد التطبيقات
إظهارها للمستخدم، مثل اسم القناة
(
COLUMN_DISPLAY_NAME
) أو رقمها (COLUMN_DISPLAY_NUMBER
) أو عنوان البرنامج الذي يتم عرضه. - البيانات الوصفية: تتوفّر ثلاثة حقول لتحديد المحتوى،
وفقًا للمعايير ذات الصلة، مثل معرّف بث النقل للقناة
(
COLUMN_TRANSPORT_STREAM_ID
) ومعرّف الشبكة الأصلي (COLUMN_ORIGINAL_NETWORK_ID
) ومعرّف الخدمة (COLUMN_SERVICE_ID
). - البيانات الداخلية: الحقول المخصّصة للاستخدام المخصّص لمدخلات TV
بعض الحقول، مثلCOLUMN_INTERNAL_PROVIDER_DATA
، هي حقول BLOB قابلة للتخصيص يمكن فيها لوحدة إدخال التلفزيون تخزين بيانات وصفية عشوائية عن القناة أو البرنامج. - الإبلاغ: تشير حقول الإبلاغ إلى ما إذا كان يجب حظر القناة من البحث أو التصفّح أو المشاهدة. لا يمكن ضبط هذا الإعداد إلا على مستوى القناة. تلتزم جميع البرامج بالإعدادات المحدّدة على القناة.
COLUMN_SEARCHABLE
: قد يكون حظر البحث من بعض القنوات مطلوبًا في مناطق معيّنة.COLUMN_SEARCHABLE = 0
يعني ذلك أنّه يجب عدم عرض القناة في نتائج البحث.COLUMN_BROWSABLE
: تظهر لتطبيقات النظام فقط. حظر التطبيقات من تصفُّح القناة يشير الرمزCOLUMN_BROWSABLE = 0
إلى أنّه يجب عدم تضمين القناة في قائمة القنوات.COLUMN_LOCKED
: تظهر لتطبيقات النظام فقط. حظر مشاهدة القناة من خلال الحسابات غير الصالحة بدون إدخال رمز التعريف الشخصي يشير الرمزCOLUMN_LOCKED = 1
إلى أنّ القناة يجب أن تكون محمية بأدوات رقابة الأهل.
للحصول على قائمة أكثر شمولاً بالحقول، يُرجى الاطّلاع على
android/frameworks/base/media/java/android/media/tv/TvContract.java
.
الأذونات والتحكّم في الوصول
تكون جميع الحقول مرئية لأي مستخدم لديه إذن الوصول إلى الصف المقابل. لا يمكن للمستخدمين الوصول مباشرةً إلى أيّ حقول، بل يمكنهم الاطّلاع فقط على ما يعرضه تطبيق التلفزيون أو التطبيقات التابعة للنظام أو مصادر إدخال التلفزيون.
- يحتوي كل صف على
PACKAGE_NAME
، وهي الحزمة (التطبيق) التي تملك هذا الصف، ويتم التحقّق منها في "طلب البحث" و"الإدراج" و"التعديل" من خلال TvProvider.java. لا يمكن لمدخل التلفزيون الوصول إلا إلى المعلومات التي كتبها، ويتم حظره من الوصول إلى المعلومات التي تقدّمها مداخل التلفزيون الأخرى. - أذونات القراءة والكتابة من خلال AndroidManifest.xml (تتطلّب موافقة المستخدم) لتحديد القنوات المتاحة
- يمكن فقط لتطبيقات
signatureOrSystem
الحصول على الإذنACCESS_ALL_EPG_DATA
للوصول إلى قاعدة البيانات بالكامل.
مدير مصادر إدخال التلفزيون
يقدّم "مدير إدخالات التلفزيون" واجهة برمجة تطبيقات مركزية للنظام في إطار عمل إدخالات Android TV بشكل عام. وتتوسط هذه الخدمة التفاعل بين التطبيقات ومدخلات التلفزيون، وتوفر وظائف رقابة الأهل. يجب أن يتم إنشاء جلسات "أداة إدارة إدخالات التلفزيون" بشكلٍ فردي مع إدخالات التلفزيون. يتيح "مدير إدخالات التلفزيون" الوصول إلى إدخالات التلفزيون المثبَّتة حتى تتمكّن التطبيقات من إجراء ما يلي:
- إدراج مدخلات التلفزيون والتحقّق من حالتها
- إنشاء جلسات وإدارة المستمعين
بالنسبة إلى الجلسات، قد يضبط تطبيق التلفزيون مصدر إدخال التلفزيون على عناوين URL التي أضافها
إلى قاعدة بيانات مقدّم خدمة التلفزيون فقط، باستثناء مصادر إدخال التلفزيون المباشرة التي يمكن
ضبطها باستخدام TvContract.buildChannelUriForPassthroughInput()
.
قد يتم أيضًا ضبط مستوى الصوت في مصدر إدخال التلفزيون. إنّ مدخلات التلفزيون التي يوفّرها ويوقّعها
الصانع (تطبيقات التوقيع) أو التطبيقات الأخرى المثبَّتة في ملف "نظام التشغيل
" يمكنها الوصول إلى قاعدة بيانات مزوّد خدمة التلفزيون بالكامل. يمكن استخدام إذن الوصول هذا
لإنشاء تطبيقات تتيح استعراض جميع القنوات
والبرامج التلفزيونية المتاحة والبحث فيها.
يمكن للتطبيق إنشاء TvInputCallback
وتسجيله مع
android.media.tv.TvInputManager
ليتم استدعاؤه عند تغيُّر حالة
مدخل التلفزيون أو عند إضافة مدخل تلفزيون أو إزالته. على سبيل المثال، يمكن أن يتفاعل تطبيق التلفزيون عند انقطاع اتصال مصدر إدخال التلفزيون
من خلال عرضه على أنّه غير متصل ومنع اختياره.
يُنشئ "مدير إدخالات التلفزيون" واجهة برمجة تطبيقات تجريدية للتواصل بين تطبيق التلفزيون وإدخالات التلفزيون. تتيح الواجهة العادية لكل من "مدير إدخالات التلفزيون" و"إدخال التلفزيون" لعدة شركات تصنيع الأجهزة إنشاء تطبيقات خاصة بها للتلفزيون، كما تساعد جميع إدخالات التلفزيون التابعة لجهات خارجية على العمل مع جميع تطبيقات التلفزيون.
مصادر إدخال التلفزيون
إنّ مصادر إدخال التلفزيون هي تطبيقات Android من حيث أنّها تتضمّن ملف AndroidManifest.xml و تكون مثبّتة (من خلال Play أو مثبّتة مسبقًا أو تم تثبيتها من مصدر غير معروف). يتيح Android TV استخدام تطبيقات النظام المثبَّتة مسبقًا والتطبيقات الموقَّعة من الشركة المصنِّعة للجهاز و مدخلات التلفزيون التابعة لجهات خارجية.
لا يمكن إلا للشركة المصنّعة تقديم بعض الإدخالات، مثل منفذ HDMI أو منفذ الضبط المضمّن، لأنّها تتعامل مباشرةً مع الأجهزة الأساسية. أما التطبيقات الأخرى، مثل IPTV وخدمات بث المحتوى في أماكن مختلفة وأجهزة فك تشفير البث الخارجية، فيمكن أن تقدّمها جهات خارجية على شكل حِزم APK على "متجر Google Play". بعد تنزيل التطبيق وتثبيته، يمكن اختيار مصدر البث الجديد من خلال تطبيق التلفزيون.
مثال على إدخال البيانات

في هذا المثال، يكون مدخل التلفزيون الذي تقدّمه الشركة المصنّعة للجهاز موثوقًا فيه ويملك إذن وصول كاملاً إلى موفّر المحتوى التلفزيوني. وبما أنّه جهاز إدخال تلفزيوني للبث المباشر، لا يتم تسجيل أي قنوات أو برامج لدى مقدّم خدمة التلفزيون. للحصول على معرّف الموارد المنتظم المستخدَم
للإشارة إلى إدخال البيانات المُمرَّرة، استخدِم android.media.tv.TvContract
طريقة الأداة buildChannelUriForPassthroughInput(String inputId)
.
يتواصل تطبيق التلفزيون مع "مدير مصادر إدخال التلفزيون" للوصول إلى مصدر إدخال HDMI للتلفزيون.
مثال على موالف مدمج

في هذا المثال، يكون جهاز Tuner TV Input المدمج الذي تقدّمه الشركة المصنّعة للجهاز موثوقًا به ولديه إذن وصول كامل إلى موفّر المحتوى التلفزيوني.
مثال على إدخال جهة خارجية

في هذا المثال، يتم توفير مدخل التلفزيون في وحدة التحكّم في حدود الجلسة (STB) الخارجية من قِبل جهة خارجية. بما أنّه لا يمكن لمصدر إدخال التلفزيون هذا الوصول مباشرةً إلى خلاصة الفيديو عبر HDMI، يجب أن يمرّ أولاً بإدارة مصادر إدخال التلفزيون وأن يستخدم مصدر إدخال HDMI الذي يوفّره مصنع الجهاز.
من خلال "مدير مصادر إدخال التلفزيون"، يمكن لمصدر إدخال التلفزيون الخارجي (STB) التواصل مع مصدر إدخال HDMI TV وطلب عرض الفيديو على HDMI1. وبالتالي، يمكن لمصدر إدخال التلفزيون في وحدة التحكّم في حدود الجلسة التحكّم في التلفزيون بينما يعرض مصدر إدخال HDMI للتلفزيون الذي تقدّمه الشركة المصنّعة الفيديو.
مثال على ميزة "صورة داخل صورة"

يوضّح المخطّط البياني أعلاه كيفية نقل الأزرار على جهاز التحكّم عن بُعد إلى مصدر إدخال محدد في التلفزيون لعرض ميزة "نافذة ضمن النافذة". يتم تفسير عمليات الضغط على الأزرار
من خلال برنامج تشغيل الجهاز الذي يوفّره المصنّع، ويؤدي ذلك إلى
تحويل رموز مسح الجهاز إلى رموز مفاتيح Android ونقلها إلى
مسار الإدخال العادي في Android.
يعمل الزرّان InputReader
وInputDispatcher
كKeyEvents.
وتؤدي هذه الإجراءات بدورها إلى بدء أحداث في تطبيق التلفزيون إذا كان في المقدّمة.
إنّ مدخلات التلفزيون في النظام فقط هي المؤهّلة لتلقّي InputEvents
،
وذلك فقط إذا كانت تملك إذن النظام RECEIVE_INPUT_EVENT
.
تتحمّل واجهة إدخال التلفزيون مسؤولية تحديد أحداث الإدخال التي يجب استخدامها، ويجب أن تسمح
لتطبيق التلفزيون بمعالجة المفاتيح التي لا يحتاج إلى استخدامها.
يتحمّل تطبيق التلفزيون مسؤولية معرفة مصدر إدخال التلفزيون النشط في النظام،
أي الذي اختاره المستخدم، وإزالة الغموض عن KeyEvents
وتوجيهه إلى جلسة "مدير إدخال التلفزيون" الصحيحة، مع استدعاء
dispatchInputEvent()
لنقل الحدث إلى مصدر إدخال التلفزيون المرتبط.
مثال على إدخال MHEG-5
يعرض الرسم البياني التالي عرضًا أكثر تفصيلاً لكيفية توجيه KeyEvents
من خلال ملف Android TIF.

يعرض هذا النموذج مسار تطبيق الزر الأحمر، وهو شائع في أوروبا للسماح للمستخدمين بالوصول إلى التطبيقات التفاعلية على أجهزة التلفزيون. يمكن إرسال تطبيق عبر مجرى النقل هذا. عند النقر على الزر، يسمح للمستخدمين بالتفاعل مع تطبيقات البث هذه. على سبيل المثال، يمكنك استخدام تطبيقات البث هذه للوصول إلى صفحات الويب أو نتائج المباريات الرياضية ذات الصلة.
اطّلِع على قسم تطبيق البث للتعرّف على كيفية تفاعل تطبيقات البث مع تطبيق التلفزيون.
في هذا المثال:
- يكون تطبيق التلفزيون في المقدّمة ويتلقّى جميع المفاتيح.
- يتم تمرير
KeyEvents
(مثل الزر الأحمر) إلى التلفزيون النشط يتم إدخاله على النحو التالي:InputEvents.
- يتم دمج ميزة "إدخال التلفزيون" في النظام مع حِزمة MHEG-5، ولديها إذن النظام
RECEIVE_INPUT_EVENT
. - عند تلقّي رمز مفتاح التفعيل (مثل الزر الأحمر)، يشغّل مصدر إدخال التلفزيون تطبيق البث.
- يستهلك إدخال التلفزيون
KeyEvents
كـInputEvents
ويكون تطبيق البث هو التركيز ويعالجInputEvents
إلى أن يتم إغلاقه.
ملاحظة: لا تتلقّى مدخلات التلفزيون التابعة لجهات خارجية مفاتيح التشفير مطلقًا.
طبقة HAL لإدخال التلفزيون
يساعد واجهة HAL لأجهزة إدخال التلفزيون في تطوير أجهزة إدخال التلفزيون للوصول إلى الأجهزة المخصّصة للتلفزيون.
كما هو الحال مع واجهات HAL الأخرى في Android، يتوفّر واجهة HAL لأجهزة إدخال التلفزيون (tv_input
)
في شجرة مصادر AOSP، ويعمل المورّد على تطوير عملية تنفيذها.
ملاحظة: اعتبارًا من Android 14، يتم تحديد واجهة HAL لإدخال التلفزيون باستخدام AIDL.
تطبيق للبثّ التلفزيوني
يعرض تطبيق التلفزيون في النظام محتوى تلفزيونيًا مباشرًا للمستخدم. يتم توفير تطبيق تلفزيوني مرجعي (بث تلفزيوني مباشر) إلى جانب نظام التشغيل Android، والذي يمكن لجهات تصنيع الأجهزة استخدامه كما هو أو تخصيصه أو توسيعه أو استبداله. يتوفّر رمز المصدر في "المشروع المفتوح المصدر لنظام Android"، ويمكنك البدء باستخدامه في مقالة التطبيق المرجعي للتلفزيون.
يمكن لشركات تصنيع الأجهزة توسيع نطاق تطبيقات التلفزيون لتوفير ميزات خاصة بشركة تصنيع الجهاز أو البلد، ولكن لا يندرج ذلك ضمن نطاق TIF أو تطبيق التلفزيون المرجعي.
على الأقل، يجب أن يعالج تطبيق التلفزيون المضمّن في النظام المهام التالية:
الإعداد والضبط
- رصد إدخالات التلفزيون تلقائيًا
- السماح لمدخلات التلفزيون ببدء إعداد القناة
- التحكّم في إعدادات رقابة الأهل
- تعديل القنوات
جارٍ عرض
- الوصول إلى جميع القنوات التلفزيونية والتنقّل بينها
- الوصول إلى شريط معلومات البرنامج التلفزيوني
- عرض بيانات دليل البرامج الإلكتروني (EPG)
- إتاحة مسارات صوتية وترجمات متعددة
- تقديم طلب التحقّق من رقم التعريف الشخصي لأدوات رقابة الأهل
- السماح بتراكب واجهة مستخدم إدخال التلفزيون لمعيار التلفزيون (HbbTV وما إلى ذلك)
- تعبئة نتائج البحث عن القنوات والبرامج التلفزيونية
- عرض بطاقات ربط التطبيقات
- واجهات برمجة التطبيقات المتوافقة مع ميزة "تقديم/ترجيع الفيديو"
- التعامل مع وظائف DVR وتوفير واجهات برمجة التطبيقات لتسجيل المحتوى على التلفزيون
ستتزايد هذه المجموعة من الميزات بما يتوافق مع إصدارات Android الجديدة التي تم فيها توسيع واجهات برمجة التطبيقات TIF للمنصة. توفّر أداة التحقّق من مجموعة اختبار التوافق (CTS) تغطية اختبار التوافق.
إتاحة استخدام أجهزة إدخال التلفزيون التابعة لجهات خارجية
يوفّر Android TV واجهات برمجة تطبيقات للمطوّرين لأجهزة التلفزيون التابعة لجهات خارجية، ما يتيح للتطبيقات المثبَّتة عرض قنوات برامج في تجربة البث التلفزيوني المباشر. لضمان تنفيذ تطبيق التلفزيون المتوافق مع أجهزة Android، يتحمّل تطبيق التلفزيون المضمّن في النظام بعض المهام المتعلّقة بعرض مدخلات القنوات التلفزيونية التابعة لجهات خارجية على المستخدم. يقدّم تطبيق البث التلفزيوني المباشر المرجعي عملية تنفيذ متوافقة. وفي حال استبدال تطبيق التلفزيون في النظام، على الشركات المصنّعة للأجهزة التأكّد من أنّ تطبيقاتهم توفّر توافقًا مشابهًا لتلبية توقعات المطوّرين على جميع أجهزة Android TV.
يجب أن يعرض تطبيق التلفزيون في النظام مدخلات تابعة لجهات خارجية إلى جانب خدمة البث التلفزيوني المباشر التلقائية للجهاز. تهدف واجهات برمجة التطبيقات المخصّصة للمطوّرين إلى تمكين المستخدمين من العثور على القنوات (بعد تثبيتها) ضمن تجربة المشاهدة العادية على التلفزيون.
يُسمح بالتمييز المرئي بين القنوات المضمّنة والقنوات التابعة لجهات خارجية، كما هو محدّد في قسم "تطبيقات التلفزيون" من "ملحقات تطوير البرامج لنظام التشغيل Android".
توضّح الأقسام التالية كيف يستوفي تطبيق Live TV متطلبات CDD.
إعداد قناة جديدة
تبدأ إضافة مصادر/قنوات جديدة تابعة لجهات خارجية عندما يعثر المستخدم على مصدر إدخال تلفزيوني ويثبّته من أحد متاجر التطبيقات، مثل Google Play.
تضيف بعض مصادر بيانات التلفزيون التابعة لجهات خارجية القنوات تلقائيًا إلى قاعدة بيانات TvProvider. ومع ذلك، ستقدّم معظم التطبيقات نشاط إعداد لتمكين المستخدم من إعداد قنواته وتقديم تفاصيل تسجيل الدخول وغيرها من الإجراءات. يجب أن يضمن تطبيق التلفزيون المضمّن في النظام أنّه يمكن للمستخدم تفعيل نشاط الإعداد هذا، ولهذا السبب يتطلب CDD أن تكون مدخلات الجهات الخارجية هي الحد الأدنى من إجراءات التنقّل بعيدًا عن تطبيق التلفزيون الرئيسي.
يقدّم تطبيق البث التلفزيوني المباشر المرجعي قائمة "مصادر القنوات" للوصول إلى المدخلات.




بالإضافة إلى ذلك، يتم عرض بطاقة إشعار في أعلى قائمة تطبيق التلفزيون بعد تثبيت TvInput جديد، لتوجيه المستخدم مباشرةً إلى عملية الإعداد:

إذا اتّخذ المستخدم إجراءً من خلال الإشعار، يمكنه اختيار إعداد المصادر كما هو موضّح في الشكل 10.
اطّلِع على تحديد خدمة إدخال التلفزيون لمعرفة توقعات المطوّرين في هذا المجال.
تخصيص قائمة القنوات
يمكن أن يوفّر المصنّعون واجهة مستخدم لإخفاء قنوات معيّنة و السماح للمستخدمين بإدارة جداول البرامج الخاصة بهم. يتوفّر هذا الخيار في ميزة "البث التلفزيوني المباشر".


EPG
يجب أن يثق مطوّرو المحتوى الخارجي بأنّه يمكن للمستخدمين الانتقال بسهولة إلى قنواتهم أثناء الاستخدام العام على جميع أجهزة Android TV المتوافقة.
يجب عرض القنوات من مصادر تابعة لجهات خارجية كجزء من دليل البرامج الإلكتروني لتجربة البث التلفزيوني المباشر العادي على الجهاز. يمكن استخدام فئات منفصلة أو فصل مرئي للقنوات التابعة لجهات خارجية (راجِع قسم "تطبيقات التلفزيون" في "ملحق تطوير البرامج (CDD) لنظام التشغيل Android"). والمهم هو أن يتمكّن المستخدمون من العثور على القنوات التي ثبَّتوها.
البحث
على المصنّعين تنفيذ تطبيق التلفزيون لتضمين نتائج البحث لطلبات البحث المُرسَلة على مستوى العالم من أجل ضمان تقديم أفضل تجربة للمستخدم. يوفّر البث التلفزيوني المباشر عملية تنفيذ (راجِع التي تقدّم نتائج من مدخلات تابعة لجهات خارجية (مطلوب لتوافق منصّة البث المباشر) بالإضافة إلى المدخلات المضمّنة.
تغيير الوقت
بالنسبة إلى الأجهزة التي تعمل بالإصدار 6.0 من نظام التشغيل Android والإصدارات الأحدث، يجب أن يكون تطبيق التلفزيون متوافقًا مع واجهة برمجة التطبيقات time shifting API في إطار عمل Android. بالإضافة إلى ذلك، على المصنّعين توفير عناصر التحكّم في التشغيل في تطبيق التلفزيون، والتي تتيح للمستخدمين إمكانية إيقاف التشغيل مؤقتًا واستئنافه والترجيع والتقديم السريع للتشغيل.
بالنسبة إلى مصادر إدخال التلفزيون التي تتيح تغيير الوقت، يجب أن يعرض تطبيق التلفزيون عناصر التحكّم في التشغيل.

فيديو مسجَّل
بالنسبة إلى الأجهزة التي تعمل بنظام التشغيل Android 7.0 والإصدارات الأحدث، يجب أن يكون تطبيق التلفزيون متوافقًا مع واجهات برمجة تطبيقات تسجيل البرامج في إطار عمل Android، وذلك لتفعيل البرامج المسجّلة وعرضها وتشغيلها.
يتيح ذلك لصنّاع الأجهزة توصيل الأنظمة الفرعية لتسجيل الفيديو الرقمي (DVR) بواجهة TIF، وبالتالي تقليل الجهد المبذول في عملية الدمج لتفعيل وظائف تسجيل الفيديو الرقمي (DVR) أو دمجها على جهاز التلفزيون. ويتيح أيضًا للجهات الخارجية توفير أنظمة تسجيل الفيديو الرقمية (DVR) التي يمكن تركيبها بعد الشراء ويمكن توصيلها بجهاز Android TV.
بالإضافة إلى تسجيل المحتوى المباشر، يعالج تطبيق YouTube TV أيضًا تعارض الموارد. على سبيل المثال، إذا كان الجهاز مزوّدًا بمعدّلَي تحويل تردد، يمكنه تسجيل برنامجَين في الوقت نفسه. إذا طلب المستخدم تسجيل ثلاثة برامج، على تطبيق التلفزيون التعامل مع التعارض، ويجب أن يعرض إشعارًا أو يطلب من المستخدم تحديد الأولوية لهذه الطلبات.
يمكن أيضًا لتطبيقات التلفزيون تنفيذ منطق أكثر تعقيدًا، مثل سؤال المستخدم عما إذا كان يريد تسجيل كل الحلقات القادمة من سلسلة عند طلب تسجيل حلقة واحدة.
اطّلِع على الرسم البياني التالي للاطّلاع على طريقة تنفيذ ميزة "تسجيل الفيديوهات الرقمية" المحتملة في Android TV.

- تُعلم خدمة إدخال التلفزيون تطبيق التلفزيون بعدد أجهزة الاستقبال المتاحة لكي تتمكّن من معالجة أي تعارض محتمل في الموارد.
- يتلقّى تطبيق التلفزيون طلبًا من المستخدم لتسجيل برنامج تلفزيوني.
- يخزِّن تطبيق YouTube TV جدول التسجيل في قاعدة بياناته الداخلية.
- عندما يحين وقت التسجيل، يُرسِل تطبيق YouTube TV طلبًا لضبط القناة المرتبطة بالتسجيل.
- تتلقّى خدمة إدخال التلفزيون هذا الطلب، وتردّ بالإشارة إلى ما إذا كانت هناك موارد مناسبة أم لا، وتضبط القناة.
- بعد ذلك، يرسل تطبيق التلفزيون طلبًا لبدء التسجيل إلى مدير إدخال التلفزيون.
- تتلقّى خدمة إدخال التلفزيون هذا الطلب وتبدأ التسجيل.
- تخزِّن خدمة إدخال التلفزيون بيانات الفيديو الفعلية في مساحة التخزين الخاصة بها، والتي يمكن أن تكون مساحة تخزين خارجية أو مساحة تخزين في السحابة الإلكترونية.
- عندما يحين وقت إنهاء التسجيل، يُرسِل تطبيق التلفزيون طلب إيقاف التسجيل إلى "مدير إدخالات التلفزيون".
- بعد أن تتلقّى خدمة إدخال التلفزيون الطلب، تتوقف عن التسجيل و تضيف البيانات الوصفية المرتبطة به إلى مقدّم خدمة التلفزيون حتى يتمكّن تطبيق التلفزيون من عرض التسجيل للمستخدمين عند الطلب.
لمزيد من المعلومات حول تنفيذ ميزات التسجيل في خدمة إدخال محتوى التلفزيون، يُرجى الاطّلاع على مقالة تسجيل محتوى التلفزيون.
مراجع مفيدة
- إنّ اتفاقية المطوّرين لنظام التشغيل Android وواجهات برمجة التطبيقات الموثَّقة للمطوّرين هي المراجع النهائية.
- يُجري أداة التحقّق من التوافق (CTS Verifier) اختبارات على واجهات برمجة التطبيقات كجزء من برنامج اختبار التوافق. قد يكون إجراء هذا الفحص على محتوى Live TV طريقة مفيدة للاطّلاع على جدول البرامج الإلكتروني و"بحث Google" وأدوات رقابة الأهل وغيرها من المتطلبات في سياق الإدخالات التابعة لجهات خارجية.
- اطّلِع على مقالة تحديد خدمة إدخال التلفزيون للتعرّف على توقعات المطوّرين في هذا المجال.
أدوات رقابة الأهل
تتيح أدوات رقابة الأهل للمستخدم حظر القنوات والبرامج غير المرغوب فيها، ولكن يمكنه تجاوز الحظر من خلال إدخال رمز رقم التعريف الشخصي.
تتم مشاركة مسؤولية وظائف أدوات رقابة الأهل بين تطبيق التلفزيون، وخدمة "مدير إدخالات التلفزيون"، وموفّر خدمة التلفزيون، و"إدخال التلفزيون".
تكون أدوات رقابة الأهل إلزامية، وهي مشمولة في أداة CTS Verifier.
حدّد عدد من البلدان أنظمة تقييم يمكن أن تستخدمها عناصر إدخال التلفزيون من خلال TVContentRating API. بالإضافة إلى ذلك، يمكن لأجهزة إدخال التلفزيون تسجيل أنظمة تقييم مخصّصة كما هو موضّح في اختبار أداة التحقّق من CTS، الذي يقدّم تقييمًا "زائفًا". في البلدان التي يتوفّر فيها نظام تقييم عادي، ننصح مصنعي الأجهزة بدمج أدوات رقابة الأهل في إطار عمل إدخال التلفزيون مع أي آليات أخرى قد يضيفونها.
موفر خدمة التلفزيون
يحتوي كل صف قناة على حقل COLUMN_LOCKED
الذي يُستخدَم لقفل
قنوات معيّنة من المشاهدة بدون إدخال رمز PIN. إنّ حقل البرنامج
COLUMN_CONTENT_RATING
مخصّص للعرض ولا يُستخدَم
لفرض رقابة الأهل.
مدير مصادر إدخال التلفزيون
يخزِّن "مدير إدخالات التلفزيون" كل TvContentRating
محظور ويتلقّى isRatingBlocked()
للإشارة إلى ما إذا كان يجب حظر المحتوى الذي يحمل isRatingBlocked()
محدّدًا.
إدخال التلفزيون
يتحقّق مدخل التلفزيون مما إذا كان يجب حظر المحتوى الحالي من خلال الاتصال بالرقم
isRatingBlocked()
في "مدير مدخل التلفزيون" عند تغيُّر تقييم المحتوى المعروض
(عند تغيير البرنامج أو القناة)، أو عند تغيُّر إعدادات أدوات رقابة الأهل (في
ACTION_BLOCKED_RATINGS_CHANGED
و
ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED
). وإذا كان يجب حظر المحتوى، يتم إيقاف الصوت والفيديو في مدخل التلفزيون، ويتم إرسال إشعار إلى تطبيق التلفزيون بأنّه تم حظر المحتوى الحالي من خلال الاتصال بالرقم
notifyContentBlocked(TvContentRating)
. إذا كان من المفترض عدم
حظر المحتوى، تفعِّل ميزة "إدخال التلفزيون" الصوت والفيديو وتُعلم تطبيق التلفزيون
بأنّه يُسمح بالمحتوى الحالي من خلال الاتصال بالرقم notifyContentAllowed()
.
تطبيق للبثّ التلفزيوني
للالتزام واجهات برمجة التطبيقات لأدوات الرقابة الأبوية، وبالتالي إنشاء منصة متوافقة، يجب أن يوفّر تطبيق النظام التلفزيوني طريقة للمستخدمين لإدارة أدوات الرقابة الأبوية، بما في ذلك أي تقييمات مخصّصة مسجّلة من خلال تطبيقات معيّنة.
يعرض تطبيق التلفزيون واجهة مستخدم لرمز رقم التعريف الشخصي (PIN) عندما يتم إعلامه بأنّه تم حظر المحتوى الحالي من خلال إدخال التلفزيون أو عندما يحاول المستخدم عرض قناة محظورة.
لا يخزِّن تطبيق YouTube TV إعدادات أدوات رقابة الأهل مباشرةً. عندما يغيّر
المستخدم إعدادات أدوات رقابة الأهل، يخزِّن "مدير إدخالات التلفزيون" كل
TvContentRating
محظور، ويخزِّن مقدّم خدمة التلفزيون كل
قناة محظورة.
يجب أن يعلن تطبيق التلفزيون عن الإذن
android.permission.MODIFY_PARENTAL_CONTROLS
لتغيير
إعدادات أدوات رقابة الأهل.
ننصح الشركات المصنّعة للأجهزة باتّباع ما يلي:
- يمكنك إجراء اختبار أدوات رقابة الأهل في أداة التحقّق من التوافق (CTS Verifier) على تطبيق البث التلفزيوني المباشر المرجعي لعرض متطلبات التوافق.
- استخدِم تطبيق "البث التلفزيوني المباشر" كمرجع لتطبيق التلفزيون الخاص بهم: يُرجى الاطّلاع على ContentRatingsManager و RatingSystemsFragment مصدرًا، وكيفية معالجة التقييمات المخصّصة.
HDMI-CEC
تسمح ميزة HDMI-CEC لجهاز واحد بالتحكّم في جهاز آخر، ما يتيح استخدام جهاز تحكّم عن بُعد واحد للقيام بالتحكم في أجهزة متعددة في نظام المسرح المنزلي. يستخدم Android TV هذا البروتوكول ل تسريع عملية الإعداد والسماح بالتحكّم عن بُعد في مصادر الإدخال المختلفة للتلفزيون من خلال تطبيق TV المركزي. على سبيل المثال، يمكنه تبديل مصادر الإدخال وتشغيل الأجهزة أو إيقافها وغير ذلك.
تُنفِّذ واجهة برمجة التطبيقات لنظام التشغيل Android واجهة HDMI-CEC كخدمة التحكّم في HDMI لكي يحتاج مصنعو الأجهزة إلى تطوير برامج تشغيل منخفضة المستوى تتفاعل مع واجهة برمجة التطبيقات لنظام التشغيل Android TV HAL الخفيفة، ما يُتيح لهم تخطّي منطق العمل الأكثر تعقيدًا. من خلال توفير طريقة تنفيذ قياسية، يسعى Android إلى الحدّ من مشاكل التوافق من خلال تقليل عمليات التنفيذ المجزّأة ودعم الميزات بشكل انتقائي. تستخدِم خدمة التحكّم في HDMI خدمات Android الحالية، بما في ذلك الإدخال والطاقة.
وهذا يعني أنّه يجب إعادة تصميم عمليات تنفيذ واجهة HDMI-CEC الحالية لتعمل بشكلٍ متوافق مع واجهة TIF في Android. ننصحك بأن تحتوي منصة الأجهزة على معالج دقيق لتلقّي طلبات تشغيل CEC وطلبات أخرى.

- تتلقّى حافلة CEC أمرًا من المصدر النشط حاليًا للتبديل إلى مصدر مختلف.
- يُرسِل برنامج التشغيل الأمر إلى وحدة HAL الخاصة بـ HDMI-CEC.
- يُرسِل HAL إشعارًا إلى جميع
ActiveSourceChangeListeners
. - يتم إشعار خدمة التحكّم في HDMI بتغيير المصدر من خلال
ActiveSourceChangeListener
. - تنشئ خدمة "مدير إدخالات التلفزيون" نية لتطبيق التلفزيون من أجل تبديل المصدر.
- بعد ذلك، ينشئ تطبيق التلفزيون جلسة "مدير إدخالات التلفزيون" لإدخال التلفزيون الذي يتم التبديل إليه، ويُطلِق
setMain
في تلك الجلسة. - تُرسِل جلسة "مدير إدخالات التلفزيون" هذه المعلومات إلى إدخال التلفزيون عبر HDMI.
- يطلب إدخال التلفزيون عبر HDMI ضبط مساحة عرض الشريط الجانبي.
- تنشئ خدمة "إدارة إدخالات التلفزيون" أمر التحكّم في التوجيه المناسب الذي يُرسَل إلى خدمة التحكّم في HDMI عند ضبط السطح.
إرشادات دمج المحتوى التلفزيوني
تطبيق البث
بما أنّ لكل بلد متطلبات خاصة بالبث (MHEG وTeletext وHbbTV وغير ذلك)، من المتوقّع أن تقدّم الشركات المصنّعة حلولها الخاصة لتطبيق البث، على سبيل المثال:
- MHEG: الحزمة الأصلية
- نصوص المعلومات: الحزمة الأصلية
- HbbTV: حلّ HbbTV من Vewd Software
في إصدار Android L، يتوقع فريق Android TV أن يستخدم المصنّعون مُدمِجي الأنظمة أو حلول Android لحِزم البرامج التلفزيونية الإقليمية، أو ينقلوا السطح إلى حِزم البرامج التلفزيونية، أو ينقلوا رمز المفتاح الضروري للتفاعل مع الحِزم القديمة.
في ما يلي كيفية تفاعل تطبيق البث مع تطبيق التلفزيون:
- تطبيق التلفزيون هو التطبيق الذي يتم التركيز عليه، ويتلقّى جميع المفاتيح.
- يُرسِل تطبيق التلفزيون مفاتيح (مثل الزر الأحمر) إلى جهاز إدخال التلفزيون.
- يتم دمج جهاز إدخال التلفزيون داخليًا مع حِزمة البرامج القديمة للتلفزيون.
- عند تلقّي رمز مفتاح التفعيل (مثل الزر الأحمر)، يشغِّل جهاز إدخال التلفزيون التطبيقات المخصّصة للبث.
- يجذب تطبيق البث التلفزيوني الانتباه في تطبيق التلفزيون ويعالج إجراءات المستخدم.
بالنسبة إلى البحث الصوتي/الاقتراحات، قد يتيح تطبيق البث البحث داخل التطبيق للبحث الصوتي.