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

تدفق
إليك كيفية ممارسة الهندسة المعمارية:
- يرى المستخدم ويتفاعل مع تطبيق التلفزيون ، وهو تطبيق نظام لا يمكن استبداله بتطبيق تابع لجهة خارجية.
- يعرض تطبيق التلفزيون محتوى AV من إدخال التلفزيون.
- لا يمكن لتطبيق التلفزيون التحدث مباشرة مع مدخلات التلفزيون. يحدد مدير إدخال التلفزيون حالة مدخلات التلفزيون لتطبيق التلفزيون. راجع TV Input Manager أدناه للحصول على مزيد من التفاصيل حول هذه القيود.
أذونات
- تتمتع مدخلات التليفزيون والتلفزيون الخاصة بـ
signatureOrSystem
فقط بالوصول الكامل إلى قاعدة بيانات موفر التلفزيون وقادرة على تلقي KeyEvents. - يمكن فقط لمدخلات تلفزيون النظام الوصول إلى HAL لإدخال التلفزيون من خلال خدمة TV Input Manager. يتم الوصول إلى مدخلات التلفزيون من شخص إلى آخر عبر جلسات TV Input Manager.
- تتمتع مدخلات التلفزيون التابعة لجهات خارجية بوصول مغلق للحزمة إلى قاعدة بيانات موفر التلفزيون ويمكن أن تقرأ / تكتب فقط لصفوف الحزمة المطابقة.
- يمكن لمدخلات التلفزيون التابعة لجهات خارجية إما عرض المحتوى الخاص بها أو المحتوى الخاص بها من مدخلات التلفزيون التي تمر عبر الشركة المصنعة للجهاز ، مثل HDMI1. لا يمكنهم عرض المحتوى من مدخلات التلفزيون غير العابرة ، مثل الموالف المدمج أو موالف IPTV.
- يشير إذن
TV_INPUT_HARDWARE
لتطبيق TV Input للجهاز إلى خدمة TV Input Manager لإخطار خدمة إدخال التلفزيون عند التمهيد للاتصال بخدمة مدير إدخال التلفزيون وإضافة مدخلات التلفزيون الخاصة بها. يسمح هذا الإذن لتطبيق إدخال التلفزيون للأجهزة بدعم مدخلات تلفزيون متعددة لكل خدمة إدخال تلفزيون ، بالإضافة إلى القدرة على إضافة وإزالة إدخالات التلفزيون المدعومة ديناميكيًا.
مزود التلفزيون
تخزن قاعدة بيانات موفر التلفزيون القنوات والبرامج من مدخلات التلفزيون. ينشر موفر التلفزيون أيضًا الأذونات المرتبطة ويديرها بحيث يمكن لمدخلات التلفزيون رؤية سجلاتهم الخاصة فقط. على سبيل المثال ، يمكن لمدخل تلفزيون معين مشاهدة القنوات والبرامج التي قدمها فقط ويحظر عليه الوصول إلى أي قنوات وبرامج أخرى لإدخالات التلفزيون.
يقوم موفر التلفزيون بتعيين "نوع البث" إلى "النوع الأساسي" داخليًا. تعد مدخلات التلفزيون مسؤولة عن ملء "نوع البث" بالقيمة الموجودة في معيار البث الأساسي ، وسيتم تلقائيًا ملء حقل "النوع الأساسي" بالنوع المرتبط الصحيح من 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
: مرئي لتطبيقات النظام فقط. تقييد القناة من عرضها بواسطة حسابات غير صالحة دون إدخال رمز PIN.COLUMN_LOCKED = 1
تعني أن القناة يجب أن تكون محمية بواسطة الرقابة الأبوية.
للحصول على قائمة أكثر شمولاً للحقول ، راجع android/frameworks/base/media/java/android/media/tv/TvContract.java
أذونات والتحكم في الوصول
جميع الحقول مرئية لأي شخص لديه حق الوصول إلى الصف المقابل. لا توجد حقول يمكن الوصول إليها مباشرة من قبل المستخدمين ؛ يرون فقط ما يظهر على سطح تطبيق التلفزيون أو تطبيقات النظام أو مدخلات التلفزيون.
- يحتوي كل صف على
PACKAGE_NAME
، الحزمة (التطبيق) التي تمتلك هذا الصف ، محددة في الاستعلام ، الإدراج ، التحديث عبر TvProvider.java. يمكن لمدخل التلفزيون الوصول إلى المعلومات التي كتبها فقط ويتم عزله عن المعلومات التي توفرها مدخلات التلفزيون الأخرى. - أذونات القراءة والكتابة عبر AndroidManifest.xml (يتطلب موافقة المستخدم) لتحديد القنوات المتاحة.
- يمكن فقط لتطبيقات
signatureOrSystem
الحصول على إذنACCESS_ALL_EPG_DATA
للوصول إلى قاعدة البيانات بأكملها.
مدير إدخال التلفزيون
يوفر TV Input Manager واجهة برمجة تطبيقات مركزية للنظام لإطار عمل إدخال تلفزيون Android الشامل. يحكم التفاعل بين التطبيقات ومدخلات التلفزيون ويوفر وظائف الرقابة الأبوية. يجب إنشاء جلسات مدير إدخال التليفزيون واحد لواحد باستخدام إدخالات التلفزيون. يسمح مدير إدخال التلفزيون بالوصول إلى مدخلات التلفزيون المثبتة حتى تتمكن التطبيقات من:
- قائمة بمدخلات التلفزيون وتحقق من حالتها
- إنشاء الجلسات وإدارة المستمعين
بالنسبة للجلسات ، قد يتم ضبط إدخال التلفزيون بواسطة تطبيق التلفزيون فقط على URIs التي أضافها إلى قاعدة بيانات موفر التلفزيون ، باستثناء مدخلات التلفزيون التي يمكن ضبطها لاستخدام TvContract.buildChannelUriForPassthroughInput()
. قد يكون لمدخل التلفزيون أيضًا ضبط مستوى الصوت الخاص به. سيكون لمدخلات التلفزيون المقدمة والموقعة من قبل الشركة المصنعة للجهاز (تطبيقات التوقيع) أو التطبيقات الأخرى المثبتة في قسم النظام الوصول إلى قاعدة بيانات موفر التلفزيون بالكامل. يمكن استخدام هذا الوصول لإنشاء تطبيقات للتصفح والبحث عبر جميع القنوات والبرامج التلفزيونية المتاحة.
قد يقوم التطبيق بإنشاء وتسجيل TvInputCallback
باستخدام android.media.tv.TvInputManager
ليتم استدعاؤه مرة أخرى عند تغيير حالة إدخال التلفزيون أو عند إضافة أو إزالة إدخال تلفزيون. على سبيل المثال ، يمكن أن يتفاعل تطبيق التلفزيون عند فصل إدخال التلفزيون عن طريق عرضه على أنه غير متصل ومنع اختياره.
يلخص مدير إدخال التلفزيون الاتصال بين تطبيق التلفزيون ومدخلات التلفزيون. تسمح الواجهة القياسية لـ 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 TV.
مثال موالف مدمج

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

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

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

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




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

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


دليل البرامج الإلكتروني
يحتاج مطورو مدخلات الجهات الخارجية إلى الثقة في أنه يمكن للمستخدمين التنقل بسهولة إلى قنواتهم أثناء الاستخدام العام ، عبر جميع أجهزة Android TV المتوافقة.
يجب تقديم القنوات من مدخلات الجهات الخارجية كجزء من دليل البرامج الإلكتروني لتجربة البث التلفزيوني المباشر القياسية للجهاز. يمكن استخدام الفصل المرئي أو الفئات المنفصلة لقنوات الجهات الخارجية (راجع قسم تطبيق التلفزيون في Android CDD) - ما هو المفتاح هو أن المستخدمين قادرون على العثور على القنوات التي قاموا بتثبيتها.
يبحث
يجب على الشركات المصنعة تنفيذ تطبيق TV لتضمين نتائج البحث لطلبات البحث العالمية لضمان أفضل تجربة للمستخدم. يوفر Live TV تطبيقًا (راجع com.android.tv.search.TvProviderSearch ) يوفر نتائج من مدخلات الجهات الخارجية (مطلوبة لتوافق النظام الأساسي) بالإضافة إلى المدخلات المضمنة.
تغيير الوقت
بالنسبة للأجهزة التي تعمل بنظام التشغيل Android 6.0 والإصدارات الأحدث ، يجب أن يدعم تطبيق التلفزيون واجهات برمجة تطبيقات تغيير الوقت في إطار عمل Android. بالإضافة إلى ذلك ، يجب على الشركات المصنعة تنفيذ عناصر التحكم في التشغيل في تطبيق التلفزيون ، والتي تسمح للمستخدمين بإيقاف التشغيل مؤقتًا واستئنافه وإرجاعه وتقديمه سريعًا.
بالنسبة لمدخلات التلفزيون التي تدعم تغيير الوقت ، يحتاج تطبيق التلفزيون إلى عرض عناصر التحكم في التشغيل.

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

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

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