Personnaliser l'application TV de référence

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>
L&#39;interface utilisateur des commandes de lecture est activée après
en appuyant sur le bouton central du pavé directionnel.

Figure 1 : L'interface utilisateur Play controls (Commandes de lecture) s'active lorsque vous appuyez sur la touche Bouton central du pavé directionnel.

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>

Exemple de ligne avec des options TV personnalisées

Figure 2 : Exemple de ligne d'options TV personnalisées (luminosité et Économie d'énergie).

Exemples d&#39;options TV personnalisées

Figure 3. Exemples d'options TV personnalisées

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>

Exemple de ligne personnalisée facultative.

Figure 4. Exemple de ligne personnalisée facultative.

Exemple de boîte de dialogue d&#39;options personnalisées.

Figure 5 : Exemple de boîte de dialogue d'options personnalisées.