برنامه تلویزیون مرجع را سفارشی کنید

Live TV یک برنامه تلویزیونی مرجع است که برای دستگاه های تلویزیون اندروید طراحی شده است. با این حال، سازندگان دستگاه ممکن است بخواهند عملکردهای خاص محصول بیشتری را اضافه کنند، که توسط اجرای پیش‌فرض Live TV پوشش داده نمی‌شود، مانند تنظیم تصویر، حالت بازی یا حالت سه بعدی. برای پشتیبانی از این عملکردها یا گزینه‌های خاص دستگاه، Live TV از این سفارشی‌سازی‌ها پشتیبانی می‌کند:

  • فعال کردن حالت تغییر زمان، که به کاربران امکان مکث، سریع جلو و عقب را می دهد. پیکربندی حالت تغییر زمان برای استفاده از حافظه خارجی به جای حافظه داخلی.
  • افزودن گزینه‌ها به ردیف گزینه‌های تلویزیون.
  • افزودن یک ردیف سفارشی و افزودن گزینه‌ها در آن.

توجه : Live Channels اجرای Google Live TV است که می‌تواند در دستگاه‌های دارای سرویس‌های Google استفاده شود. برای سفارشی کردن کانال‌های زنده، com.android.tv.* با com.google.android.tv.* در این دستورالعمل‌ها جایگزین کنید.

تلویزیون زنده را سفارشی کنید

برای سفارشی کردن Live TV، دستگاه Android TV مورد نظر نیاز به یک بسته سفارشی‌سازی نصب شده دارد که باید یک برنامه سیستمی از پیش ساخته شده با مجوز com.android.tv.permission.CUSTOMIZE_TV_APP باشد.

Live TV یک بسته سیستمی را با این مجوز جستجو می‌کند، فایل‌های منبع را بررسی می‌کند، و فعالیت‌های بسته را که با دسته‌های خاص علامت‌گذاری شده‌اند را برای پردازش سفارشی‌سازی شناسایی می‌کند.

نکته کلیدی : فقط یک بسته می تواند تلویزیون زنده را سفارشی کند.

حالت تغییر زمان را پیکربندی کنید

جابجایی زمان (بازی حقه‌بازی) به دستگاه‌های تلویزیون اندروید اجازه می‌دهد تا پخش کانال را متوقف کنند، به عقب برگردانند و سریع به جلو پخش کنند. در اجرای Live TV، از طریق رابط کاربری Play Controls می توان از تغییر زمان استفاده کرد. تغییر زمان به طور پیش‌فرض در تلویزیون زنده فعال است، اما می‌توان آن را غیرفعال کرد. جابجایی زمان را می توان برای استفاده فقط از حافظه خارجی پیکربندی کرد.

برای پیکربندی time-shifting، منبع رشته trickplay_mode را اضافه کنید و مقدار آن را روی یکی از این گزینه ها قرار دهید:

  • enabled : تغییر زمان را فعال کنید. این مقدار پیش فرض زمانی است که هیچ گزینه ای داده نمی شود.
  • disabled : غیرفعال کردن تغییر زمان.
  • use_external_storage_only : تغییر زمان را برای استفاده از حافظه خارجی پیکربندی کنید.
<string name="trickplay_mode">use_external_storage_only</string>
رابط کاربری کنترل‌های پخش پس از فشار دادن دکمه مرکزی D-pad فعال می‌شود.

شکل 1 . رابط کاربری کنترل‌های پخش پس از فشار دادن دکمه مرکزی D-pad فعال می‌شود.

گزینه های تلویزیون را سفارشی کنید

سازندگان دستگاه می توانند گزینه های سفارشی تنظیمات تلویزیون زنده را به منوی گزینه های تلویزیون موجود اضافه کنند، مانند افزودن میانبر به تنظیمات تصویر صدا.

برای نشان دادن یک گزینه سفارشی، فیلتر قصدی را اعلام کنید که دسته 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 . نمونه گزینه های تلویزیون سفارشی

چندین گزینه را در یک فعالیت مدیریت کنید

یک گزینه به فیلتر هدف یک فعالیت نگاشت می شود و بالعکس. از آنجایی که اندروید فیلترهای intent را با دسته‌ها و کنش‌های یکسان متمایز نمی‌کند، یک اکتیویتی فقط یک گزینه را کنترل می‌کند، حتی اگر چندین فیلتر قصد در آن اعلام شده باشد. برای مدیریت چندین گزینه در یک فعالیت، از <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 . نمونه گفتگوی گزینه سفارشی.