تخصيص تطبيق التلفزيون المرجعي

Live TV هو تطبيق تلفزيوني مرجعي مصمم لأجهزة التلفزيون التي تعمل بنظام Android. ومع ذلك، قد ترغب الشركات المصنعة للأجهزة في إضافة المزيد من الوظائف الخاصة بالمنتج، والتي لا يغطيها التنفيذ الافتراضي للتلفزيون المباشر، مثل ضبط الصورة أو وضع اللعبة أو الوضع ثلاثي الأبعاد. لدعم هذه الوظائف أو الخيارات الخاصة بالجهاز، يدعم Live TV هذه التخصيصات:

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

ملاحظة : القنوات المباشرة هي تطبيق Google للبث التلفزيوني المباشر الذي يمكن استخدامه كما هو الحال على الأجهزة المزوّدة بخدمات Google. لتخصيص القنوات المباشرة، استبدل com.android.tv.* بـ com.google.android.tv.* في هذه التعليمات.

تخصيص البث التلفزيوني المباشر

لتخصيص البث التلفزيوني المباشر، يحتاج جهاز Android TV المستهدف إلى تثبيت حزمة التخصيص، والتي يجب أن تكون تطبيق نظام تم إنشاؤه مسبقًا بإذن com.android.tv.permission.CUSTOMIZE_TV_APP .

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

النقطة الأساسية : يمكن لحزمة واحدة فقط تخصيص البث التلفزيوني المباشر.

تكوين وضع تحويل الوقت

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

لتكوين تحويل الوقت، قم بإضافة مورد السلسلة trickplay_mode وقم بتعيين قيمته على أحد الخيارات التالية:

  • enabled : تمكين تغيير الوقت. هذه هي القيمة الافتراضية عندما لا يتم إعطاء أي خيارات.
  • disabled : تعطيل تغيير الوقت.
  • use_external_storage_only : قم بتكوين تغيير الوقت لاستخدام وحدة التخزين الخارجية.
<string name="trickplay_mode">use_external_storage_only</string>
يتم تنشيط واجهة مستخدم عناصر التحكم في التشغيل بعد الضغط على الزر الأوسط للوحة D.

شكل 1 . يتم تنشيط واجهة مستخدم عناصر التحكم في التشغيل بعد الضغط على الزر الأوسط للوحة D.

تخصيص خيارات التلفزيون

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

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

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

يمكن لمصنعي الأجهزة أيضًا وضع خيار مخصص قبل أو بعد الخيارات الموجودة عن طريق تحديد android:priority في AndroidManifest.xml . يظهر خيار بقيمة أولوية محددة أقل من 100 قبل العناصر الموجودة وتظهر قيمة أعلى من 100 بعد ذلك. يتم فرز الخيارات المخصصة المتعددة (إما قبل الخيارات الموجودة أو بعدها) حسب أولويتها بترتيب تصاعدي. إذا كانت الخيارات لها نفس الأولوية، فإن الترتيب بينها غير محدد.

في هذا المثال، يظهر الخيار أولاً في صف خيارات التلفزيون، ويتم تشغيل PictureSettingsActivity إذا تم النقر فوق الخيار.

<activity android:name=".PictureSettingsActivity"
    android:label="@string/activity_label_picture_settings"
          android:theme="@style/Theme.Panel">
    <intent-filter
        android:icon="@drawable/ic_tvoptions_brightness"
        android:label="@string/option_label_brightness"
        android:priority="0">
        <action android:name="android.intent.action.MAIN" />
        <category android:name="com.android.tv.category.OPTIONS_ROW" />
    </intent-filter>
</activity>

عينة من صف خيارات التلفزيون المخصصة

الشكل 2 . عينة من صف خيارات التلفزيون المخصصة (السطوع وتوفير الطاقة).

عينة من خيارات التلفزيون المخصصة.

الشكل 3 . عينة من خيارات التلفزيون المخصصة.

التعامل مع خيارات متعددة في النشاط

يقوم الخيار بتعيين مرشح نوايا النشاط والعكس صحيح. نظرًا لأن Android لا يفرق بين مرشحات النوايا التي لها نفس الفئات والإجراءات، فإن النشاط يتعامل مع خيار واحد فقط، حتى إذا تم الإعلان عن عوامل تصفية نوايا متعددة فيه. للتعامل مع خيارات متعددة في نشاط ما، استخدم <activity-alias> في AndroidManifest.xml . في النشاط، استخدم getIntent().getComponent() لتحديد الخيار الذي تم النقر عليه.

<activity-alias android:name=".AnyUniqueName"
    android:targetActivity=".PictureSettingsActivity">
    <intent-filter
        android:icon="@drawable/ic_tvoptions_energy_saving"
        android:label="@string/option_label_energy_saving"
        android:priority="1">
        <action android:name="android.intent.action.MAIN" />
        <category android:name="com.android.tv.category.OPTIONS_ROW" />
    </intent-filter>
</activity-alias>

إنشاء صف مخصص

يمكن للشركات المصنعة للأجهزة إضافة وتخصيص صف أعلى صف خيارات التلفزيون. هذا الصف المخصص اختياري.

عنوان الصف

حدد سلسلة partner_row_title في res/values/strings.xml . يتم استخدام قيمة السلسلة لعنوان الصف المخصص.

<string name="partner_row_title">Partner Row</string>

خيارات مخصصة

لإضافة خيارات مخصصة إلى الصف المخصص، اتبع عملية إضافة خيارات إلى قائمة خيارات التلفزيون، ولكن قم بتغيير اسم الفئة إلى com.android.tv.category.PARTNER_ROW بدلاً من ذلك.

<activity android:name=".ThreeDimensionalSettingDialogActivity"
    android:label="@string/activity_label_3d"
    android:theme="@android:style/Theme.Material.Light.Dialog">
    <intent-filter
        android:icon="@drawable/ic_tvoptions_3d"
        android:priority="0">
        <action android:name="android.intent.action.MAIN" />
        <category android:name="com.android.tv.category.PARTNER_ROW" />
    </intent-filter>
</activity>

عينة من الصف المخصص الاختياري.

الشكل 4 . عينة من الصف المخصص الاختياري.

نموذج لمربع حوار الخيارات المخصصة.

الشكل 5 . نموذج لمربع حوار الخيارات المخصصة.