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