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

Flow
في ما يلي كيفية استخدام البنية:
- يظهر للمستخدم تطبيق Android TV، وهو تطبيق نظام لا يمكن استبداله بتطبيق تابع لجهة خارجية، ويتفاعل معه.
- يعرض تطبيق "التلفزيون" محتوى الصوت والفيديو من مصدر إدخال التلفزيون.
- لا يمكن لتطبيق TV App التفاعل مباشرةً مع مدخلات التلفزيون. يحدّد TV Input Manager حالة مصادر إدخال التلفزيون لتطبيق التلفزيون. يمكنك الاطّلاع على TV Input Manager أدناه لمعرفة المزيد من التفاصيل حول هذه القيود.
الأذونات
- يمكن فقط
signatureOrSystem
لإدخالات التلفزيون وتطبيق التلفزيون الوصول الكامل إلى قاعدة بيانات مزوّد خدمة التلفزيون، كما يمكنهما تلقّي أحداث KeyEvents. - يمكن فقط لإدخالات التلفزيون التابعة لنظام التشغيل الوصول إلى طبقة تجريد الأجهزة (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
). - البيانات الداخلية: هي حقول مخصّصة للاستخدام المخصّص لمداخل التلفزيون.
بعض الحقول، مثل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. يمكن لتطبيق TV Input الوصول إلى المعلومات التي كتبها فقط، ولا يمكنه الوصول إلى المعلومات التي توفّرها تطبيقات TV Input الأخرى. - أذونات القراءة والكتابة من خلال ملف AndroidManifest.xml (يتطلّب موافقة المستخدم) لتحديد القنوات المتاحة
- يمكن لتطبيقات
signatureOrSystem
فقط الحصول على إذنACCESS_ALL_EPG_DATA
بالوصول إلى قاعدة البيانات بأكملها.
مدير مصادر إدخال التلفزيون
يوفّر "مدير أجهزة إدخال التلفزيون" واجهة برمجة تطبيقات نظام مركزية لإطار عمل أجهزة الإدخال في Android TV. ويعمل على التوسط في التفاعل بين التطبيقات ومصادر إدخال التلفزيون، كما يوفّر وظيفة رقابة الأهل. يجب إنشاء جلسات TV Input Manager بشكل فردي مع مدخلات التلفزيون. يتيح "مدير إدخال التلفزيون" الوصول إلى إدخالات التلفزيون المثبَّتة، ما يتيح للتطبيقات إجراء ما يلي:
- عرض قائمة بمصادر إدخال التلفزيون والتحقّق من حالتها
- إنشاء جلسات وإدارة المستمعين
بالنسبة إلى الجلسات، يمكن لتطبيق التلفزيون ضبط إدخال التلفزيون على معرّفات الموارد الموحّدة التي أضافها إلى قاعدة بيانات مقدّم خدمة التلفزيون فقط، باستثناء عمليات إدخال التلفزيون التي يمكن ضبطها باستخدام TvContract.buildChannelUriForPassthroughInput()
.
قد يتم أيضًا ضبط مستوى صوت مصدر إدخال التلفزيون. ستتمكّن تطبيقات إدخال التلفزيون التي يقدّمها ويوقّعها
مصنّع الجهاز (تطبيقات التوقيع) أو التطبيقات الأخرى المثبَّتة في قسم النظام
من الوصول إلى قاعدة بيانات موفّر خدمة التلفزيون بأكملها. ويمكن استخدام إذن الوصول هذا لإنشاء تطبيقات تتيح تصفّح جميع القنوات والبرامج التلفزيونية المتاحة والبحث فيها.
يمكن لأحد التطبيقات إنشاء TvInputCallback
وتسجيله باستخدام android.media.tv.TvInputManager
ليتم استدعاؤه عند تغيير حالة إدخال التلفزيون أو عند إضافة إدخال تلفزيون أو إزالته. على سبيل المثال، يمكن لتطبيق تلفزيون أن يتفاعل عند فصل مصدر إدخال للتلفزيون
من خلال عرض حالة الفصل ومنع اختياره.
تجرّد خدمة TV Input Manager عملية التواصل بين تطبيق التلفزيون ومصادر إدخال التلفزيون. تتيح الواجهة العادية لأداة TV Input Manager وTV Input لعدة مصنّعين للأجهزة إنشاء تطبيقات تلفزيون خاصة بهم، كما تساعد في تشغيل جميع إدخالات التلفزيون التابعة لجهات خارجية على جميع تطبيقات التلفزيون.
مصادر إدخال التلفزيون
إنّ تطبيقات "مصادر إدخال التلفزيون" هي تطبيقات Android، بمعنى أنّها تتضمّن ملف AndroidManifest.xml ويتم تثبيتها (عبر Play أو بشكل مسبق أو من مصادر خارجية). يتوافق Android TV مع تطبيقات النظام المثبّتة مسبقًا والتطبيقات التي وقّعتها الشركة المصنّعة للجهاز ووسائل إدخال التلفزيون التابعة لجهات خارجية.
لا يمكن توفير بعض مصادر الإدخال، مثل مصدر إدخال HDMI أو مصدر إدخال الموالف المدمج، إلا من خلال الشركة المصنّعة لأنّها تتواصل مباشرةً مع الأجهزة الأساسية. ويمكن لجهات خارجية توفير تطبيقات أخرى، مثل IPTV وplace-shifting وSTB خارجي، على شكل حِزم APK في "متجر Google Play". بعد تنزيل وتثبيت طريقة الإدخال الجديدة، يمكن اختيارها من داخل تطبيق التلفزيون.
مثال على الإدخال المباشر

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

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

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

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

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




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

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


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

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

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