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