Referenz-TV-App anpassen

Live-TV ist eine Referenz-TV-App für Android-Fernsehgeräte. Sie können jedoch Geräteherstellern weitere produktspezifische Funktionen hinzufügen, nicht durch die Standardimplementierung von Live-TV abgedeckt, z. B. bei Bildern Anpassung, Spielmodus oder 3D-Modus. Zur Unterstützung dieser gerätespezifischen Funktionen oder unterstützt Live-TV folgende Anpassungen:

  • Zeitversetztes Fernsehen aktivieren, in dem Nutzer pausieren, vorspulen können und zurückspulen. Zeitversetztes Fernsehen für die Verwendung konfigurieren externen Speicher anstelle des internen Speichers.
  • Der Zeile mit den TV-Optionen werden Optionen hinzugefügt.
  • Eine benutzerdefinierte Zeile mit Optionen hinzufügen

Hinweis: Live Kanäle ist die Implementierung von Live-TV durch Google, die in der vorliegenden Form verwendet werden kann mit Google-Diensten. Um Live-TV-Kanäle anzupassen, ersetze com.android.tv.* mit com.google.android.tv.* in diesen Anleitung.

Live-TV anpassen

Zur Anpassung von Live-TV benötigt das Android TV-Zielgerät ein Anpassungspaket eine vordefinierte System-App mit Berechtigung „com.android.tv.permission.CUSTOMIZE_TV_APP“.

Live-TV sucht nach einem Systempaket mit dieser Berechtigung und prüft die Ressource und erkennt die Aktivitäten des Pakets. mit bestimmten Kategorien markiert um Anpassungen vorzunehmen.

Wichtiger Hinweis: Live-TV kann nur mit einem Paket personalisiert werden.

Modus für zeitversetztes Fernsehen konfigurieren

Zeitversetztes Fernsehen (Trickplay) ermöglicht Android-Fernsehgeräten, und die Kanalwiedergabe vorspulen. In der Live-TV-Implementierung können über die Benutzeroberfläche der Wiedergabesteuerung verwendet werden. Zeitversetztes Fernsehen ist in Live-TV, kann aber deaktiviert werden. Zeitversetztes Fernsehen kann auch so konfiguriert werden, externen Speicher.

Fügen Sie die Stringressource trickplay_mode hinzu, um die zeitversetzte Nutzung zu konfigurieren und legen Sie als Wert eine der folgenden Optionen fest:

  • enabled: Zeitversetztes Fernsehen aktivieren. Dies ist der Standardwert, wenn werden keine Optionen angegeben.
  • disabled: Zeitversetztes Fernsehen deaktivieren.
  • use_external_storage_only: Konfigurieren Sie zeitversetztes Fernsehen für die Verwendung externen Speicher.
<string name="trickplay_mode">use_external_storage_only</string>
Die Benutzeroberfläche der Play-Steuerung wird aktiviert nach dem
indem Sie die Taste in der Mitte des Steuerkreuzes drücken.

Abbildung 1: Die Benutzeroberfläche für die Wiedergabesteuerung wird durch Drücken der Taste in der Mitte des Steuerkreuzes.

TV-Optionen anpassen

Gerätehersteller können benutzerdefinierte Optionen für Live-TV-Einstellungen TV-Optionsmenü, z. B. durch Hinzufügen einer Verknüpfung zu den Tonbildeinstellungen.

Wenn Sie eine benutzerdefinierte Option angeben möchten, deklarieren Sie einen Intent-Filter, mit dem die Kategorie gefiltert wird com.android.tv.category.OPTIONS_ROW in einer Aktivität. Die benutzerdefinierte Funktion wird vom Gerätehersteller in der Aktivität implementiert. Die Aktivität wird gestartet, wenn auf die Option geklickt wird. Titel und Symbol der Aktivität werden verwendet für die Option. Benutzerdefinierte TV-Optionen sollten der vorhandenen Benutzeroberfläche entsprechen, um User Experience optimiert.

Hinweis: Eine Aktivität kann nur eine Option verarbeiten. da Live-TV keine Intent-Filter in einer Aktivität mit demselben Android-Einschränkung verwendet werden. Weitere Informationen finden Sie unter Mehrere Optionen Aktivität.

Gerätehersteller können auch eine benutzerdefinierte Option vor oder nach der Optionen durch die Definition von android:priority in AndroidManifest.xml. Eine Option mit einem definierten Prioritätswert unter 100 wird vor der vorhandenen Elemente und ein Wert über 100 wird danach angezeigt. Mehrere benutzerdefinierte Optionen (entweder vor oder nach vorhandenen Optionen) werden aufsteigend nach ihrer Priorität sortiert. Reihenfolge. Wenn Optionen dieselbe Priorität haben, ist die Reihenfolge der Optionen nicht definiert.

In diesem Beispiel erscheint die Option an erster Stelle in der Zeile mit den TV-Optionen. PictureSettingsActivity wird gestartet, wenn auf die Option geklickt wird.

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

Beispiel für Zeile mit benutzerdefinierten TV-Optionen

Abbildung 2: Beispiel für eine Zeile mit benutzerdefinierten TV-Optionen (Helligkeit und Energiesparen).

Beispiele für benutzerdefinierte TV-Optionen.

Abbildung 3. Beispiele für benutzerdefinierte TV-Optionen.

Mehrere Optionen in einer Aktivität verarbeiten

Eine Option wird dem Intent-Filter einer Aktivität zugeordnet und umgekehrt. Denn Android keine Intent-Filter nach denselben Kategorien und Aktionen, wird in der Aktivität nur eine Option behandelt, auch wenn mehrere Intent-Filter deklariert sind darin enthalten sind. Um mehrere Optionen in einer Aktivität zu verarbeiten, verwenden Sie <activity-alias> in AndroidManifest.xml. Im Aktivität verwenden, verwenden Sie getIntent().getComponent(), um die angeklickte Option zu identifizieren.

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

Benutzerdefinierte Zeile erstellen

Gerätehersteller können über der Zeile mit TV-Optionen eine Zeile hinzufügen und anpassen. Diese benutzerdefinierte Zeile ist optional.

Zeilentitel

Definieren Sie einen partner_row_title-String in res/values/strings.xml. Der Wert des Strings wird für den benutzerdefinierten Zeilentitel.

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

Benutzerdefinierte Optionen

Wenn Sie der benutzerdefinierten Zeile benutzerdefinierte Optionen hinzufügen möchten, folgen Sie der Anleitung zum Hinzufügen von Optionen zum Menü mit den TV-Optionen, aber ändern Sie den Namen der Kategorie in Stattdessen 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>

Beispiel für eine optionale benutzerdefinierte Zeile.

Abbildung 4: Beispiel für eine optionale benutzerdefinierte Zeile.

Dialogfeld mit Beispiel für eine benutzerdefinierte Option

Abbildung 5. Dialogfeld mit Beispiel für eine benutzerdefinierte Option