Personalizza l'app TV di riferimento

Live TV è un'app TV di riferimento progettata per i televisori Android. Tuttavia, i produttori di dispositivi potrebbero voler aggiungere altre funzioni specifiche per i prodotti, ovvero non coperti dall'implementazione predefinita della TV in diretta, come le immagini regolazione automatica, modalità di gioco o modalità 3D. Per supportare queste funzioni specifiche del dispositivo o , la TV in diretta supporta le seguenti personalizzazioni:

  • È in corso l'attivazione della modalità time-shifting, che consente agli utenti di mettere in pausa, avanzare velocemente e riavvolgere. Configurazione della modalità timeshifting per l'utilizzo memoria esterna anziché interna.
  • Aggiunta di opzioni alla riga Opzioni TV.
  • Aggiungere una riga personalizzata e aggiungere opzioni al suo interno.

Nota: pubblicati Canali è l'implementazione di Google della TV in diretta che può essere usata così com'è nella dispositivi con i servizi Google. Per personalizzare Dirette TV, sostituisci com.android.tv.* con com.google.android.tv.* in questi istruzioni.

Personalizzare la TV in diretta

Per personalizzare la TV in diretta, il dispositivo Android TV di destinazione richiede un pacchetto di personalizzazione installata, che deve essere un'app di sistema predefinita Autorizzazione com.android.tv.permission.CUSTOMIZE_TV_APP.

La TV in diretta cerca un pacchetto di sistema con questa autorizzazione e controlla la risorsa e rileva le attività del pacchetto contrassegnati con categorie specifiche per elaborare la personalizzazione.

Punto chiave: la TV in diretta può essere personalizzata in un solo pacchetto.

Configura modalità timeshift

La funzionalità time-shifting (trickplay) consente ai dispositivi Android TV di mettere in pausa, riavvolgere e avanti veloce la riproduzione del canale. Nell'implementazione della TV in diretta, il time-shifting può essere utilizzata tramite l'interfaccia utente dei controlli di riproduzione. La funzionalità timeshift è abilitata per impostazione predefinita in TV in diretta, ma può essere disattivata. La funzionalità time-shifting può essere configurata anche per utilizzare solo unità di archiviazione esterna.

Per configurare il time-shifting, aggiungi la risorsa di stringa trickplay_mode e impostarne il valore su una delle seguenti opzioni:

  • enabled: attiva il timeshift. Questo è il valore predefinito quando non vengono offerte opzioni.
  • disabled: disattiva timeshift.
  • use_external_storage_only: configura la funzionalità timeshifting da utilizzare dispositivo di archiviazione esterno.
<string name="trickplay_mode">use_external_storage_only</string>
L&#39;UI di Play Controls viene attivata dopo
premendo il pulsante centrale del D-pad.

Figura 1. L'interfaccia utente dei controlli di riproduzione viene attivata dopo aver premuto il pulsante Pulsante centrale del D-pad.

Personalizza le opzioni TV

I produttori di dispositivi possono aggiungere opzioni personalizzate per le impostazioni della TV in diretta alle impostazioni Menu opzioni della TV, ad esempio l'aggiunta di una scorciatoia alle impostazioni di Sound Picture.

Per indicare un'opzione personalizzata, dichiara un filtro per intent che filtra la categoria com.android.tv.category.OPTIONS_ROW in un'attività. La funzionalità personalizzata sia implementato dal produttore del dispositivo nell'attività. L'attività si avvia se l'utente fa clic sull'opzione. Il titolo e l'icona dell'attività sono utilizzati per l'opzione. Le opzioni per la TV personalizzata devono corrispondere all'interfaccia utente esistente per fornire la migliore esperienza utente possibile.

Nota: un'attività può gestire solo un'opzione. perché la TV in diretta non è in grado di distinguere i filtri di intent in un'attività con lo stesso a causa delle limitazioni di Android. Vedi Gestire più opzioni in una attività per una soluzione alternativa.

I produttori possono anche inserire un'opzione personalizzata prima o dopo l'opzione esistente opzioni definendo android:priority in AndroidManifest.xml. Un'opzione con un valore di priorità definito inferiore a 100 viene visualizzata prima dell'opzione e successivamente vengono mostrati gli elementi con un valore superiore a 100. Più opzioni personalizzate (tra cui prima o dopo le opzioni esistenti) vengono ordinate in base alla loro priorità in ordine crescente ordine. Se le opzioni hanno la stessa priorità, l'ordine tra di loro non è definito.

In questo esempio, l'opzione viene visualizzata per prima nella riga Opzioni TV e PictureSettingsActivity si avvia se fai clic sull'opzione.

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

Esempio di riga di opzioni per la TV personalizzata

Figura 2. Esempio di riga delle opzioni TV personalizzate (Luminosità e risparmio energetico).

Esempi di opzioni TV personalizzate.

Figura 3. Esempi di opzioni TV personalizzate.

Gestire più opzioni in un'attività

Un'opzione viene mappata al filtro per intent di un'attività e viceversa. Poiché Android non differenzia i filtri per intent con le stesse categorie e azioni, l'attività gestisce solo un'opzione, anche se vengono dichiarati più filtri per intent al suo interno. Per gestire più opzioni in un'attività, usa <activity-alias> a AndroidManifest.xml. Nella attività, utilizza getIntent().getComponent() per identificare l'opzione su cui è stato fatto clic.

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

Crea una riga personalizzata

I produttori di dispositivi possono aggiungere e personalizzare una riga sopra la riga di opzioni per la TV. Questa riga personalizzata è facoltativa.

Titolo riga

Definisci una stringa partner_row_title in res/values/strings.xml. Il valore della stringa viene utilizzato per il valore titolo della riga.

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

Opzioni personalizzate

Per aggiungere opzioni personalizzate alla riga personalizzata, segui la procedura per l'aggiunta di opzioni al menu opzioni della TV, ma cambia il nome della categoria in com.android.tv.category.PARTNER_ROW in alternativa.

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

Esempio di riga personalizzata facoltativa.

Figura 4. Esempio di riga personalizzata facoltativa.

Esempio di finestra di dialogo di opzione personalizzata.

Figura 5. Esempio di finestra di dialogo di opzione personalizzata.