Live TV 是專為 Android 電視裝置設計的參考電視應用程式。不過,裝置製造商可能會想新增更多產品專屬功能,這些功能不在 Live TV 的預設實作項目中,例如圖片調整、遊戲模式或 3D 模式。為了支援這些裝置專屬功能或選項,Live TV 支援以下自訂設定:
- 啟用時間移轉模式,讓使用者可以暫停、快轉和倒轉。設定時間移轉模式,使用外部儲存空間而非內部儲存空間。
- 在電視選項列中新增選項。
- 新增自訂資料列並加入選項。
注意:直播頻道是 Google 實作的直播電視功能,可在支援 Google 服務的裝置上使用。如要自訂直播頻道,請將這些操作說明中的 com.android.tv.*
替換為 com.google.android.tv.*
。
自訂電視直播
如要自訂電視直播,目標 Android TV 裝置必須安裝自訂化套件,且該套件必須是具有 com.android.tv.permission.CUSTOMIZE_TV_APP
權限的預先建構系統應用程式。
Live TV 會搜尋含有此權限的系統套件、檢查資源檔案,並偵測標示為特定類別的套件活動,以便處理自訂內容。
重點:只有一個套裝方案可自訂電視直播。
設定時間移轉模式
時間移轉 (TrickPlay) 功能可讓 Android 電視裝置暫停、倒轉及快轉頻道播放內容。在 Live TV 實作中,可透過 播放控制項使用時間移轉功能。根據預設,直播電視會啟用時間轉移功能,但可以停用。時間移轉功能也可以設定為只使用外部儲存空間。
如要設定時間轉換,請新增字串資源 trickplay_mode
,並將其值設為下列任一選項:
enabled
:啟用時間轉換功能。這是在未提供任何選項時的預設值。disabled
:停用時間轉移功能。use_external_storage_only
:設定時間移轉功能,以便使用外部儲存空間。
<string name="trickplay_mode">use_external_storage_only</string>

圖 1. 按下方向鍵中央按鈕後,系統會啟用「Play 控制項」UI。
自訂電視選項
裝置製造商可以在現有的電視選項選單中,新增直播電視設定的自訂選項,例如在「影像聲響」設定中新增捷徑。
如要指出自訂選項,請宣告意圖篩選器,篩選活動中的 com.android.tv.category.OPTIONS_ROW
類別。自訂功能是由裝置製造商在活動中實作。點選選項後,系統就會啟動活動。系統會使用活動的標題和圖示做為選項。自訂的 TV 選項應與現有的 UI 相符,才能提供最佳使用者體驗。
注意:由於 Android 限制,Live TV 無法區分相同類別活動中的意圖篩選器,因此活動只能處理一個選項。如要瞭解解決方法,請參閱「在活動中處理多個選項」。
裝置製造商也可以在 AndroidManifest.xml
中定義 android:priority
,將自訂選項置於現有選項之前或之後。優先順序值低於 100 的選項會顯示在現有項目之前,優先順序值高於 100 的選項則會顯示在後方。多個自訂選項 (位於現有選項之前或之後) 會依優先順序排列,並以升冪順序排列。如果選項具有相同的優先順序,則系統不會定義選項的順序。
在這個範例中,這個選項會先顯示在電視選項列中,如果點選該選項,系統就會啟動 PictureSettingsActivity。
<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>
圖 2. 範例:自訂的電視選項列 (亮度和省電)。
圖 3. 自訂電視選項範例。
在活動中處理多個選項
選項會對應至活動的意圖篩選器,反之亦然。由於 Android 不會區分具有相同類別和動作的意圖篩選器,因此活動只會處理一個選項,即使其中宣告了多個意圖篩選器也一樣。如要在活動中處理多個選項,請在 AndroidManifest.xml
中使用 <activity-alias>
。在活動中,使用 getIntent().getComponent()
來識別點選的選項。
<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>
建立自訂資料列
裝置製造商可以在電視選項列上方新增及自訂一列。這個自訂資料列為選用項目。
列標題
在 res/values/strings.xml
中定義 partner_row_title
字串。字串的值會用於自訂資料列標題。
<string name="partner_row_title">Partner Row</string>
自訂選項
如要在自訂資料列中新增自訂選項,請按照新增電視選項選單的程序操作,但請將類別名稱變更為 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>
圖 4. 選用自訂資料列範例。
圖 5:自訂選項對話方塊範例。