Настройка приложения Reference TV

Live TV — это эталонное телевизионное приложение, разработанное для телевизионных устройств Android. Однако производители устройств могут захотеть добавить дополнительные функции для конкретных продуктов, которые не включены в реализацию Live TV по умолчанию, например настройку изображения, игровой режим или режим 3D. Для поддержки этих функций или параметров, специфичных для устройства, Live TV поддерживает следующие настройки:

  • Включение режима сдвига во времени, который позволяет пользователям делать паузы, перематывать вперед и назад. Настройка режима сдвига во времени для использования внешнего хранилища вместо внутреннего хранилища.
  • Добавление параметров в строку параметров телевизора.
  • Добавление пользовательской строки и добавление в нее параметров.

Примечание . Live Channels — это реализация Google Live TV, которую можно использовать как есть на устройствах с сервисами Google. Чтобы настроить Live Channels, замените com.android.tv.* на com.google.android.tv.* в этих инструкциях.

Настройка прямого эфира

Чтобы настроить Live TV, на целевом устройстве Android TV должен быть установлен пакет настройки, который должен быть предварительно созданным системным приложением с разрешением com.android.tv.permission.CUSTOMIZE_TV_APP .

Live TV ищет системный пакет с этим разрешением, проверяет файлы ресурсов и обнаруживает действия пакета, отмеченные определенными категориями , для обработки настройки.

Ключевой момент : только один пакет может настроить Live TV.

Настройка режима сдвига во времени

Сдвиг во времени (trickplay) позволяет телевизионным устройствам Android приостанавливать, перематывать назад и вперед воспроизведение канала. В реализации Live TV сдвиг во времени можно использовать через пользовательский интерфейс управления воспроизведением . Сдвиг во времени включен по умолчанию в Live TV, но его можно отключить. Сдвиг во времени также можно настроить на использование только внешнего хранилища.

Чтобы настроить сдвиг во времени, добавьте строковый trickplay_mode и установите для него одно из следующих значений:

  • enabled : включить сдвиг во времени. Это значение по умолчанию, если параметры не указаны.
  • disabled : отключить сдвиг во времени.
  • use_external_storage_only : настроить сдвиг времени для использования внешнего хранилища.
<string name="trickplay_mode">use_external_storage_only</string>
Пользовательский интерфейс управления воспроизведением активируется после нажатия центральной кнопки крестовины.

Рисунок 1 . Пользовательский интерфейс управления воспроизведением активируется после нажатия центральной кнопки крестовины.

Настройка параметров телевизора

Производители устройств могут добавлять пользовательские параметры для настроек Live TV в существующее меню параметров телевизора, например, добавлять ярлык к настройкам Sound Picture.

Чтобы указать настраиваемый параметр, объявите фильтр намерений, который фильтрует категорию com.android.tv.category.OPTIONS_ROW в действии. Настраиваемая функция реализована производителем устройства в действии. Активность запускается, если выбрана опция. Название и значок действия используются для опции. Индивидуальные параметры телевизора должны соответствовать существующему пользовательскому интерфейсу, чтобы обеспечить наилучшее взаимодействие с пользователем.

Примечание . Действие может обрабатывать только один вариант, поскольку Live TV не может различать фильтры намерений в действии с той же категорией из-за ограничения 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 . Образец диалогового окна пользовательских параметров.