Live TV est une application TV de référence conçue pour les appareils Android TV. Toutefois, les fabricants d’appareils voudront peut-être ajouter plus de fonctions spécifiques au produit, qui sont non couverts par l'implémentation par défaut de la télévision en direct, comme les images les réglages, le mode Jeu ou le mode 3D. Pour prendre en charge ces fonctions spécifiques à l'appareil ou options, la télévision en direct prend en charge les personnalisations suivantes:
- L'activation du mode de contrôle du direct, qui permet aux utilisateurs de mettre en pause, d'avancer, et revenir en arrière. Configurer le contrôle du direct à utiliser stockage externe au lieu de la mémoire de stockage interne.
- Ajout d'options à la ligne "Options TV".
- Ajouter une ligne personnalisée et y ajouter des options
Remarque: En ligne
Channels est l'implémentation Google de la télévision en direct qui peut être utilisée telle quelle sur
appareils avec les services Google. Pour personnaliser TV en direct, remplacez
com.android.tv.*
avec com.google.android.tv.*
dans ces
instructions.
Personnaliser la télévision en direct
Pour personnaliser la télévision en direct, l'appareil Android TV cible doit disposer d'un package de personnalisation
installé. Il doit s'agir d'une application système prédéfinie avec
Autorisation com.android.tv.permission.CUSTOMIZE_TV_APP
.
TV en direct recherche un package système avec cette autorisation et vérifie la ressource et détecte l'activité Activities du package avec des catégories spécifiques pour personnaliser les processus.
Important: Un seul package peut personnaliser la télévision en direct.
Configurer le mode Contrôle du direct
Le contrôle du direct permet aux appareils Android TV de mettre en pause, de revenir en arrière et effectuer une avance rapide de la lecture de la chaîne. Dans l'implémentation de la télévision en direct, le décalage temporel peut être utilisée via l'interface utilisateur Play Controls. Le contrôle du direct est activé par défaut dans Télévision en direct, mais peut être désactivée. Le contrôle du direct peut également être configuré pour utiliser stockage externe uniquement.
Pour configurer le décalage temporel, ajoutez la ressource de chaîne trickplay_mode
.
et définissez sa valeur sur l'une des options suivantes:
enabled
: activer le décalage temporel. Il s'agit de la valeur par défaut lorsque aucune option n'est proposée.disabled
: désactiver le décalage temporel.use_external_storage_only
: configurer le contrôle du direct à utiliser stockage externe.
<string name="trickplay_mode">use_external_storage_only</string>
Personnaliser les options du téléviseur
Les fabricants d'appareils peuvent ajouter des options personnalisées pour les paramètres de télévision en direct Menu d'options du téléviseur, par exemple l'ajout d'un raccourci vers les paramètres de l'image audio.
Pour indiquer une option personnalisée, déclarez un filtre d'intent qui filtre la catégorie
com.android.tv.category.OPTIONS_ROW
dans une activité. La fonctionnalité personnalisée
est implémentée par le fabricant de l'appareil dans l'activité. L'activité
se lance si l'utilisateur clique sur l'option. Le titre et l'icône de l'activité
sont utilisés pour
l'option. Les options TV personnalisées doivent correspondre à l'interface utilisateur existante pour fournir la
la meilleure expérience utilisateur possible.
Remarque: Une activité ne peut gérer qu'une seule option. car la télévision en direct ne peut pas différencier les filtres d'intent dans une activité ayant en raison de la limitation Android. Consultez la section Gérer plusieurs options dans un activité.
Les fabricants d'appareils peuvent également placer une option personnalisée avant ou après les
en définissant android:priority
dans AndroidManifest.xml
.
Une option dont la valeur de priorité définie est inférieure à 100 s'affiche avant la
et une valeur supérieure à 100 apparaît ensuite. Plusieurs options personnalisées
avant ou après les options existantes) sont triés en fonction de leur priorité, dans l'ordre croissant.
commande. Si les options ont la même priorité, leur ordre d'apparition n'est pas défini.
Dans cet exemple, l'option apparaît en premier sur la ligne des options du téléviseur. PictureSettingsActivity se lance si l'utilisateur clique sur l'option.
<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>
Gérer plusieurs options dans une activité
Une option est mappée au filtre d'intent d'une activité et inversement. Comme Android
ne différencie pas les filtres d'intent avec les mêmes catégories et actions, une
l'activité ne gère qu'une seule option, même si plusieurs filtres d'intent sont déclarés
s'y trouvent. Pour gérer plusieurs options dans une activité, utilisez
<activity-alias>
dans AndroidManifest.xml
. Dans
activité, utilisez getIntent().getComponent()
pour identifier l'option sur laquelle l'utilisateur a cliqué.
<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>
Créer une ligne personnalisée
Les fabricants d'appareils peuvent ajouter et personnaliser une ligne au-dessus de la ligne des options du téléviseur. Cette ligne personnalisée est facultative.
Titre de la ligne
Définissez une chaîne partner_row_title
dans
res/values/strings.xml
La valeur de la chaîne est utilisée pour l'attribut
le titre de la ligne.
<string name="partner_row_title">Partner Row</string>
Options de personnalisation
Pour ajouter des options personnalisées à la ligne personnalisée, suivez la procédure d'ajout d'options
au menu d'options du téléviseur, mais remplacez le nom de la catégorie par
com.android.tv.category.PARTNER_ROW
à la place.
<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>