Dostosuj referencyjną aplikację TV

Live TV to referencyjna aplikacja telewizyjna przeznaczona na telewizory z Androidem. Pamiętaj jednak: Producenci urządzeń mogą dodawać więcej funkcji poszczególnych produktów, nieobjęte domyślną implementacją TV na żywo, taką jak obraz trybu gry czy trybu 3D. obsługę tych funkcji związanych z określonym urządzeniem lub Telewizja na żywo obsługuje te dostosowania:

  • Włączam tryb przesunięcia w czasie, który umożliwia użytkownikom wstrzymywanie, przewijanie do przodu i przewinąć do tyłu. Konfiguruję używany tryb przesunięcia w czasie pamięci zewnętrznej zamiast wewnętrznej.
  • Dodaję opcje do wiersza opcji telewizyjnych.
  • Dodawanie wiersza niestandardowego i dodawanie w nim opcji.

Uwaga: na żywo Kanały to implementacja Google TV na żywo, której można używać w niezmienionej formie. urządzeń z usługami Google. Aby dostosować Kanały na żywo, zastąp com.android.tv.* z: com.google.android.tv.* za instrukcje.

Dostosuj telewizję na żywo

Aby dostosować telewizję na żywo, docelowe urządzenie z Androidem TV wymaga pakietu dostosowania musi to być gotowa aplikacja systemowa z Uprawnienie com.android.tv.permission.CUSTOMIZE_TV_APP.

Telewizja na żywo wyszukuje pakiet systemowy z tym uprawnieniem, sprawdza zasób i wykrywa aktywność pakietu. oznaczone konkretnymi kategoriami na przetwarzanie danych.

Ważne: tylko jeden pakiet umożliwia dostosowanie telewizji na żywo.

Skonfiguruj tryb przesunięcia w czasie

Przesuw w czasie (trikplay) umożliwia wstrzymywanie, przewijanie i wstrzymywanie telewizorów z Androidem oraz przewijać kanał do przodu. Jeśli chodzi o implementację telewizji na żywo, przesuwanie w czasie można używać w interfejsie Sterowanie odtwarzaniem. Przesunięcie w czasie jest domyślnie włączone w: telewizję na żywo, ale można ją wyłączyć; Przesunięcie w czasie można też skonfigurować tak: tylko w pamięci zewnętrznej.

Aby skonfigurować przesunięcie w czasie, dodaj zasób ciągu znaków trickplay_mode i ustaw jego wartość na jedną z poniższych opcji:

  • enabled: włącz przesunięcie w czasie. Jest to wartość domyślna, gdy nie są podane żadne opcje.
  • disabled: wyłącz przesunięcie w czasie.
  • use_external_storage_only: skonfiguruj przesunięcie w czasie, którego będzie używać pamięci zewnętrznej.
<string name="trickplay_mode">use_external_storage_only</string>
Interfejs sterowania Google Play jest aktywowany po
naciskając środkowy przycisk na padzie kierunkowym.

Rysunek 1. Interfejs elementów sterujących odtwarzaniem włącza się po naciśnięciu klawisza Środkowy przycisk na padzie kierunkowym.

Dostosuj opcje telewizora

Producenci urządzeń mogą dodawać niestandardowe opcje ustawień telewizji na żywo menu opcji telewizora, na przykład dodanie skrótu do ustawień obrazu dźwiękowego.

Aby wskazać opcję niestandardową, zadeklaruj filtr intencji, który filtruje kategorię com.android.tv.category.OPTIONS_ROW w aktywności. Funkcja niestandardowa jest wdrożony przez producenta urządzenia w aktywności. Aktywność uruchamia się po kliknięciu odpowiedniej opcji. Tytuł i ikona aktywności są używane do: wybierz tę opcję. Niestandardowe opcje TV powinny pasować do istniejącego interfejsu użytkownika, aby zapewnić i zapewniają użytkownikom najlepsze wrażenia.

Uwaga: aktywność może obsługiwać tylko 1 opcję. Telewizja na żywo nie może rozróżnić filtrów intencji w działaniu z takim samym kategorii ze względu na ograniczenia związane z Androidem. Zapoznaj się z sekcją Obsługiwanie wielu opcji w .

Producenci urządzeń mogą też dodać opcję niestandardową przed dotychczasowymi lub po nich definiując android:priority w AndroidManifest.xml. Opcja o zdefiniowanej wartości priorytetu poniżej 100 jest wyświetlana przed i wartość większą niż 100. Wiele opcji niestandardowych ( przed istniejącymi opcjami lub po nich) są posortowane rosnąco według priorytetu zamówienie. Jeśli opcje mają taki sam priorytet, kolejność między nimi jest niezdefiniowana.

W tym przykładzie opcja pojawia się jako pierwsza w wierszu opcji TV, Kliknięcie tej opcji uruchamia 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>

Przykładowy wiersz niestandardowych opcji telewizji

Rysunek 2. Przykładowy wiersz z dostosowanymi opcjami TV (Jasność Oszczędzanie energii).

Przykładowe niestandardowe opcje telewizji.

Rysunek 3. Przykładowe niestandardowe opcje telewizji.

Obsługa wielu opcji w ramach aktywności

Opcja jest mapowana na filtr intencji aktywności i odwrotnie. Ponieważ Android nie rozróżnia filtrów intencji o tych samych kategoriach i działaniach, aktywność obsługuje tylko 1 opcję, nawet jeśli zadeklarowano wiele filtrów intencji w nim zawarte. Aby obsługiwać wiele opcji w ramach aktywności, użyj funkcji <activity-alias> w AndroidManifest.xml. W aktywność, użyj getIntent().getComponent(), aby zidentyfikować klikniętą opcję.

<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>

Tworzenie wiersza niestandardowego

Producenci urządzeń mogą dodawać i dostosowywać wiersz nad wierszem opcji telewizora. Ten wiersz niestandardowy jest opcjonalny.

Tytuł wiersza

Zdefiniuj ciąg znaków partner_row_title w: res/values/strings.xml Wartość tego ciągu jest używana w niestandardowym tagu tytułu wiersza.

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

Opcje niestandardowe

Aby dodać opcje niestandardowe do wiersza niestandardowego, postępuj zgodnie z procesem dodawania opcji ale zmień nazwę kategorii na 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>

Przykładowy opcjonalny wiersz niestandardowy.

Rysunek 4. Przykładowy opcjonalny wiersz niestandardowy.

Przykładowe okno opcji niestandardowej.

Rysunek 5. Przykładowe okno opcji niestandardowej.