Google is committed to advancing racial equity for Black communities. See how.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

إطار إدخال التلفزيون

رمز Android TV HAL

يعمل إطار إدخال تلفزيون Android (TIF) على تبسيط توصيل المحتوى المباشر إلى Android TV. يوفر Android TIF واجهة برمجة تطبيقات قياسية للمصنعين لإنشاء وحدات إدخال للتحكم في Android TV ، وتمكين البحث التلفزيوني المباشر والتوصيات عبر البيانات الوصفية المنشورة بواسطة TV Input.

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

مكونات

يتضمن تطبيق 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 ): تعريف الأجهزة الذي يسمح tv_input تلفزيون النظام بالوصول إلى الأجهزة الخاصة بالتلفزيون عند تنفيذها
  • الرقابة الأبوية: تقنية تسمح بحجب القنوات والبرامج
  • HDMI-CEC: تقنية تسمح بالتحكم عن بعد في الأجهزة المختلفة عبر HDMI
  • إطار الموالف: إطار عمل لإدخال تلفزيون موالف مدمج
  • MediaCas: إطار عمل للوصول المشروط
  • Tuner Resource Manager: خدمة لإدارة مورد الأجهزة لإدخال التلفزيون و MediaCas وإدخال الموالف المدمج

يتم تناول هذه المكونات بالتفصيل أدناه. راجع الرسم التخطيطي التالي للحصول على عرض تفصيلي لهيكل إطار إدخال تلفزيون Android.

نظرة عامة على بنية Android TIF
الشكل 1. بنية إطار إدخال تلفزيون Android (TIF)

تدفق

إليك كيفية ممارسة الهندسة المعمارية:

  1. يرى المستخدم ويتفاعل مع تطبيق التلفزيون ، وهو تطبيق نظام لا يمكن استبداله بتطبيق تابع لجهة خارجية.
  2. يعرض تطبيق التلفزيون محتوى AV من إدخال التلفزيون.
  3. لا يمكن لتطبيق التلفزيون التحدث مباشرة مع مدخلات التلفزيون. يحدد مدير إدخال التلفزيون حالة إدخالات التلفزيون لتطبيق التلفزيون. راجع TV Input Manager أدناه للحصول على مزيد من التفاصيل حول هذه القيود.

أذونات

  • تتمتع مدخلات التليفزيون والتلفزيون الخاصة بـ signatureOrSystem فقط بالوصول الكامل إلى قاعدة بيانات موفر التلفزيون وقادرة على تلقي KeyEvents.
  • يمكن فقط لمدخلات تلفزيون النظام الوصول إلى HAL لإدخال التلفزيون من خلال خدمة مدير إدخال التلفزيون. يتم الوصول إلى مدخلات التلفزيون من شخص إلى آخر عبر جلسات TV Input Manager.
  • تتمتع مدخلات التلفزيون التابعة لجهات خارجية بوصول مغلق للحزمة إلى قاعدة بيانات موفر التلفزيون ويمكنها القراءة / الكتابة فقط لمطابقة صفوف الحزمة.
  • يمكن لمدخلات التلفزيون التابعة لجهات خارجية إما عرض المحتوى الخاص بها أو المحتوى الخاص بها من مدخلات التلفزيون التي تمر عبر الشركة المصنعة للجهاز ، مثل HDMI1. لا يمكنهم عرض المحتوى من مدخلات التلفزيون غير العابرة ، مثل الموالف المدمج أو موالف IPTV.
  • TV_INPUT_HARDWARE إذن TV_INPUT_HARDWARE لتطبيق TV Input للجهاز إلى خدمة TV Input Manager لإخطار خدمة إدخال التلفزيون عند التمهيد للاتصال بخدمة مدير إدخال التلفزيون وإضافة مدخلات التلفزيون الخاصة بها. يسمح هذا الإذن لتطبيق إدخال التلفزيون للأجهزة بدعم مدخلات تلفزيون متعددة لكل خدمة إدخال تلفزيون ، بالإضافة إلى القدرة على إضافة وإزالة مدخلات التلفزيون المدعومة ديناميكيًا.

مزود التلفزيون

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

يقوم موفر التلفزيون بتعيين "نوع البث" إلى "النوع الأساسي" داخليًا. تعد إدخالات التلفزيون مسؤولة عن ملء "نوع البث" بالقيمة الموجودة في معيار البث الأساسي ، وسيتم تلقائيًا ملء حقل "النوع الأساسي" بالنوع المرتبط الصحيح من android.provider.TvContract.Genres . على سبيل المثال ، مع معيار البث ATSC A / 65 والبرنامج بالنوع 0x25 (بمعنى "الرياضة") ، سيقوم إدخال التلفزيون بتعبئة "نوع البث" بسلسلة "الرياضة" وسيعمل موفر التلفزيون على حقل "النوع الأساسي" باستخدام القيمة المعينة android.provider.TvContract.Genres.SPORTS .

انظر الرسم البياني أدناه للحصول على عرض تفصيلي لمزود التلفزيون.

مزود Android TV
الشكل 2. مزود Android TV

يمكن فقط للتطبيقات الموجودة في قسم النظام ذي الامتيازات قراءة قاعدة بيانات موفر التلفزيون بالكامل.

لا تخزن مداخل التليفزيون العبور القنوات والبرامج.

بالإضافة إلى الحقول القياسية للقنوات والبرامج ، توفر قاعدة بيانات موفر التلفزيون أيضًا حقل نوع 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 ومدخلات التلفزيون. تسمح الواجهة القياسية لـ TV Input Manager و TV Input للعديد من مصنعي الأجهزة بإنشاء تطبيقات التلفزيون الخاصة بهم مع مساعدة جميع مدخلات التلفزيون التابعة لجهات خارجية على العمل على جميع تطبيقات التلفزيون.

مدخلات التلفزيون

مدخلات التلفزيون هي تطبيقات Android بمعنى أنها تحتوي على AndroidManifest.xml ويتم تثبيتها (عبر Play أو التثبيت المسبق أو التحميل الجانبي). يدعم Android TV تطبيقات النظام المثبتة مسبقًا والتطبيقات الموقعة من قبل الشركة المصنعة للجهاز ومدخلات التلفزيون التابعة لجهات خارجية.

لا يمكن توفير بعض المدخلات ، مثل إدخال HDMI أو إدخال الموالف المدمج ، إلا من قبل الشركة المصنعة لأنها تتحدث مباشرة مع الأجهزة الأساسية. يمكن توفير ميزات أخرى ، مثل IPTV و place-shifting و STB الخارجي ، بواسطة أطراف ثالثة مثل ملفات APK على متجر Google Play. بمجرد التنزيل والتثبيت ، يمكن تحديد الإدخال الجديد داخل تطبيق التلفزيون.

مثال إدخال العبور

إدخال نظام Android TV
الشكل 3. إدخال نظام Android TV

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

مثال موالف مدمج

إدخال الموالف المدمج في Android TV
الشكل 4. إدخال موالف Android TV المدمج

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

مثال على إدخال طرف ثالث

إدخال جهة خارجية على Android TV
الشكل 5. إدخال طرف ثالث في Android TV

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

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

مثال على صورة داخل صورة (PIP)

Android TV KeyEvents
الشكل 6. Android TV KeyEvents

يوضح الرسم البياني أعلاه كيف يتم تمرير الأزرار الموجودة على جهاز التحكم عن بعد إلى إدخال تلفزيون معين لعرض صورة في صورة (PIP). يتم تفسير ضغطات الأزرار هذه بواسطة برنامج تشغيل الأجهزة الذي توفره الشركة المصنعة للجهاز ، وتحويل رموز scancodes إلى رموز مفاتيح Android وتمريرها إلى InputReader خط أنابيب الإدخال القياسية لـ Android InputReader و InputDispatcher كـ KeyEvents . تؤدي هذه بدورها إلى تشغيل الأحداث على تطبيق التلفزيون إذا كان موضع التركيز.

فقط مدخلات تلفزيون النظام مؤهلة لتلقي InputEvents ، وفقط إذا كان لديهم إذن نظام RECEIVE_INPUT_EVENT . يعتبر TV Input مسؤولاً عن تحديد InputEvents الذي يجب استهلاكه ويجب أن يسمح لتطبيق TV بالتعامل مع المفاتيح التي لا يحتاج إلى استهلاكها.

يعد تطبيق TV مسؤولاً عن معرفة نظام إدخال التلفزيون النشط ، بمعنى أنه تم تحديده من قبل المستخدم ، KeyEvents الغموض عن KeyEvents الواردة KeyEvents إلى جلسة مدير إدخال التلفزيون الصحيحة ، واستدعاء dispatchInputEvent() لتمرير الحدث إلى إدخال التلفزيون المرتبط .

مثال إدخال MHEG-5

يُظهر الرسم البياني التالي عرضًا أكثر تفصيلاً لكيفية توجيه KeyEvents عبر Android TIF.

مثال على زر Android TV Red
الشكل 7. مثال الزر الأحمر لتلفزيون Android

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

راجع قسم تطبيق البث لمعرفة كيفية تفاعل تطبيقات البث مع تطبيق التلفزيون.

في هذا المثال:

  1. تطبيق TV قيد التركيز ويتلقى جميع المفاتيح.
  2. KeyEvents (مثل الزر الأحمر) إلى إدخال التلفزيون النشط كـ InputEvents.
  3. يتكامل إدخال تلفزيون النظام مع مكدس MHEG-5 ولديه إذن نظام RECEIVE_INPUT_EVENT .
  4. عند استلام رمز مفتاح التنشيط (مثل الزر الأحمر) ، يقوم TV Input بتنشيط تطبيق البث.
  5. يستهلك إدخال التلفزيون 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 للوصول إلى المدخلات.

اذهب للاعدادات
الشكل 8. اذهب إلى الإعدادات .

انتقل إلى مصدر القناة في الإعدادات
الشكل 9. انتقل إلى مصادر القنوات في الإعدادات.

حدد مصدرك من القائمة.
الشكل 10. حدد المصدر الخاص بك من القائمة.

أضف قنوات من مصدرك
الشكل 11. أضف قنوات من مصدرك.

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

يتوفر الإخطار الذي يوضح مصادر القناة الجديدة.
الشكل 12. يتوفر الإعلام الذي يوضح مصادر القنوات الجديدة.

إذا اتخذ المستخدم إجراءً من خلال الإشعار ، فيمكنه تحديد إعداد مصادره كما هو موضح في الشكل 10.

راجع تحديد خدمة إدخال التلفزيون لمعرفة توقعات المطورين في هذا المجال.

تخصيص قائمة القنوات

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

افتح قائمة القنوات في الإعدادات.
الشكل 13. افتح قائمة القنوات في الإعدادات .

تخصيص قائمة القنوات الخاصة بك.
الشكل 14. تخصيص قائمة القنوات الخاصة بك.

دليل البرامج الإلكتروني

يحتاج مطورو مدخلات الجهات الخارجية إلى الثقة في أنه يمكن للمستخدمين التنقل بسهولة إلى قنواتهم أثناء الاستخدام العام ، عبر جميع أجهزة Android TV المتوافقة.

يجب تقديم القنوات من مدخلات الجهات الخارجية كجزء من دليل البرامج الإلكتروني لتجربة البث التلفزيوني المباشر القياسية للجهاز. يمكن استخدام الفصل المرئي أو الفئات المنفصلة لقنوات الجهات الخارجية (راجع قسم تطبيق التلفزيون في Android CDD) - ما هو المفتاح هو أن المستخدمين قادرون على العثور على القنوات التي قاموا بتثبيتها.

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

تغيير الوقت

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

بالنسبة لمدخلات التلفزيون التي تدعم تغيير الوقت ، يحتاج تطبيق التلفزيون إلى عرض عناصر التحكم في التشغيل.

ضوابط التشغيل
الشكل 15. ضوابط التشغيل

DVR

بالنسبة للأجهزة التي تعمل بنظام Android 7.0 والإصدارات الأحدث ، يجب أن يدعم تطبيق التلفزيون واجهات برمجة تطبيقات تسجيل التلفزيون لإطار Android لدعم البرامج المسجلة وإدراجها وتشغيلها.

يتيح ذلك لمصنعي الأجهزة توصيل أنظمة DVR الفرعية الخاصة بهم في TIF وتقليل جهد التكامل الذي يتطلبه تمكين أو دمج وظيفة DVR على جهاز تلفزيون بشكل كبير. كما أنه يمكّن الجهات الخارجية من توفير أنظمة DVR لما بعد البيع يمكن توصيلها بجهاز Android TV.

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

يمكن لتطبيقات التلفزيون أيضًا تنفيذ منطق أكثر تعقيدًا مثل سؤال المستخدم عما إذا كان يرغب في تسجيل جميع الحلقات المستقبلية في سلسلة عندما يطلب تسجيل حلقة واحدة.

انظر الرسم البياني التالي للحصول على عرض حول تنفيذ DVR محتمل في Android TV.

تسجيل الفيديو الرقمي في Android TV
الشكل 16. تسجيل الفيديو الرقمي في Android TV

  1. تخبر خدمة إدخال التلفزيون تطبيق التلفزيون عن عدد الموالفات المتوفرة حتى يتمكن تطبيق التلفزيون من التعامل مع تعارض الموارد المحتمل.
  2. يتلقى تطبيق التلفزيون طلبًا بدأه المستخدم لتسجيل برنامج تلفزيوني.
  3. يخزن تطبيق TV App جدول التسجيل في قاعدة البيانات الداخلية الخاصة به.
  4. عندما يحين وقت التسجيل ، يمرر تطبيق التلفزيون طلبًا لضبط القناة المرتبطة بالتسجيل.
  5. تتلقى خدمة إدخال التلفزيون هذا الطلب ، وتستجيب بما إذا كانت هناك موارد مناسبة أم لا ، وتوليف القناة.
  6. ثم يمرر تطبيق التلفزيون طلبًا لبدء التسجيل إلى مدير إدخال التلفزيون.
  7. تتلقى خدمة إدخال التلفزيون هذا الطلب وتبدأ التسجيل.
  8. تخزن خدمة إدخال التلفزيون بيانات الفيديو الفعلية في وحدة التخزين الخاصة بها ، والتي يمكن أن تكون تخزين خارجي أو تخزين سحابي.
  9. عندما يحين وقت إنهاء التسجيل ، يمرر تطبيق التلفزيون طلب إيقاف التسجيل إلى مدير إدخال التلفزيون.
  10. بمجرد تلقي خدمة إدخال التلفزيون للطلب ، تقوم بإيقاف التسجيل وإضافة البيانات الوصفية المرتبطة به إلى موفر التلفزيون حتى يتمكن تطبيق التلفزيون من إظهار التسجيل للمستخدمين عند الطلب.

لمزيد من المعلومات حول تنفيذ ميزات التسجيل في خدمة إدخال التلفزيون لديك ، راجع مقالة تسجيل التلفزيون هذه.

موارد مفيدة

  • تعتبر CDD Android وواجهات برمجة التطبيقات للمطورين الموثقين بمثابة المراجع النهائية.
  • يمارس CTS Verifier واجهات برمجة التطبيقات كجزء من برنامج اختبار التوافق. قد يكون تشغيل هذا مقابل Live TV طريقة مفيدة لمشاهدة دليل البرامج الإلكتروني والبحث والرقابة الأبوية والمتطلبات الأخرى في سياق مدخلات الجهات الخارجية.
  • راجع تحديد خدمة إدخال التلفزيون لمعرفة توقعات المطورين في هذا المجال.

مراقبة اهلية

تتيح الرقابة الأبوية للمستخدم حظر القنوات والبرامج غير المرغوب فيها ، ولكن تجاوز الحظر عن طريق إدخال رمز 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 على Android TV
الشكل 17. تكامل CEC على Android TV

  1. يتلقى ناقل CEC أمرًا من المصدر النشط حاليًا للتبديل إلى مصدر مختلف.
  2. يقوم السائق بتمرير الأمر إلى HDMI-CEC HAL.
  3. يُعلم HAL كافة ActiveSourceChangeListeners .
  4. يتم إخطار خدمة التحكم في HDMI بتغيير المصدر عبر ActiveSourceChangeListener .
  5. تنشئ خدمة TV Input Manager نية لتطبيق TV على تبديل المصدر.
  6. يقوم تطبيق TV بعد ذلك بإنشاء جلسة مدير إدخال التلفزيون لإدخال التلفزيون الذي يتم التبديل إليه ويستدعي setMain في تلك الجلسة.
  7. تمرر جلسة مدير إدخال التلفزيون هذه المعلومات إلى إدخال تلفزيون HDMI.
  8. يطلب إدخال HDMI TV ضبط سطح النطاق الجانبي.
  9. تنشئ خدمة TV Input Manager Service أمر تحكم توجيه مطابقًا إلى خدمة التحكم في HDMI عند تعيين السطح.

إرشادات تكامل التلفزيون

تطبيق البث

نظرًا لأن كل دولة لديها متطلبات خاصة بالبث (MHEG و Teletext و HbbTV وغير ذلك) ، فمن المتوقع أن تقدم الشركات المصنعة حلولها الخاصة لتطبيق البث ، على سبيل المثال:

  • MHEG: مكدس أصلي
  • قناة المعلومات: مكدس أصلي
  • HbbTV: حل HbbTV من برنامج Vewd

في إصدار Android L ، يتوقع Android TV من مصنعي الأجهزة استخدام أنظمة تكامل الأنظمة أو حلول Android لمكدسات التلفزيون الإقليمية ، أو تمرير السطح إلى مجموعات برامج التلفزيون ، أو تمرير رمز المفتاح الضروري للتفاعل مع المجموعات القديمة.

إليك كيفية تفاعل تطبيق البث وتطبيق التلفزيون:

  1. تطبيق TV قيد التركيز ، حيث يتلقى جميع المفاتيح.
  2. يمرر تطبيق التلفزيون المفاتيح (مثل الزر الأحمر) إلى جهاز إدخال التلفزيون.
  3. يتكامل جهاز إدخال التلفزيون داخليًا مع مكدس التلفزيون القديم.
  4. عند استلام رمز مفتاح التنشيط (مثل الزر الأحمر) ، يقوم جهاز إدخال التلفزيون بتنشيط تطبيقات البث.
  5. يركز تطبيق البث في تطبيق التلفزيون ويتعامل مع إجراءات المستخدم.

للبحث الصوتي / التوصية ، قد يدعم تطبيق البث البحث داخل التطبيق للبحث الصوتي.