Referans TV uygulamasını özelleştirme

Canlı TV, Android televizyon cihazları için tasarlanmış bir referans TV uygulamasıdır. Ancak, cihaz üreticileri, Android'e özel daha fazla ürüne özel işlev Canlı TV'nin varsayılan uygulaması (ör. resim izleme) kapsamı dışındadır oyun modunu veya 3D modunu kullanabilirsiniz. Cihaza özgü şu işlevleri desteklemek için: seçenekleri varsa Canlı TV şu özelleştirmeleri destekler:

  • Kullanıcıların duraklatmasına, ileri sarmasına veya çalmasına olanak ve geri sarabilirsiniz. Kullanılacak zaman kaydırma modunu yapılandırma dahili depolama yerine harici depolama alanıdır.
  • TV seçenekleri satırına seçenekler ekleniyor.
  • Özel satır ekleme ve bu satıra seçenekler ekleme.

Not: Yayında Kanallar, Google'ın Canlı TV uygulamasıdır. Canlı TV'yi şu anki haliyle kullanabilir Google hizmetlerini içeren cihazlarda. Canlı Kanallar'ı özelleştirmek için com.google.android.tv.* ile com.android.tv.* bakın.

Canlı TV'yi özelleştirin

Canlı TV'yi özelleştirmek için hedef Android TV cihazının bir özelleştirme paketine ihtiyacı vardır. içeren önceden oluşturulmuş bir sistem uygulaması olması gerekir. com.android.tv.permission.CUSTOMIZE_TV_APP izni.

Canlı TV, bu izne sahip bir sistem paketini arar ve kaynağı kontrol eder. ve paketin Etkinliklerini algılar belirli kategorilerle işaretlenmiş olduğunu varsayalım.

Önemli nokta: Canlı TV yalnızca bir paket tarafından özelleştirilebilir.

Zaman kaydırma modunu yapılandırın

Zaman kaydırma (aldatma) özelliği, Android televizyon cihazlarının duraklatılmasını, geri sarmasını ve kanalı ileri sarabilirsiniz. Canlı TV uygulamasında zaman kaydırma, Oynatma kontrolleri kullanıcı arayüzü aracılığıyla kullanılabilir. Zaman kaydırma özelliği şurada varsayılan olarak etkindir: Canlı TV'dir ancak devre dışı bırakılabilir. Zaman kaydırma, yalnızca harici depolamaya izin verilir.

Zaman kaydırmayı yapılandırmak için trickplay_mode dize kaynağını ekleyin. ve değerini şu seçeneklerden birine ayarlayın:

  • enabled: Zaman kaydırmayı etkinleştir. Bu, herhangi bir seçenek sunulmuyor.
  • disabled: Zaman kaydırmayı devre dışı bırak.
  • use_external_storage_only: Harici depolama birimi.
<string name="trickplay_mode">use_external_storage_only</string>
Oynatma kontrolleri kullanıcı arayüzü,
ortadaki düğmeye basın.

1. Şekil. Oynatma kontrolleri kullanıcı arayüzü, D-pad orta düğmesi.

TV seçeneklerini özelleştirme

Cihaz üreticileri, mevcut cihazlara Canlı TV ayarları için özel seçenekler ekleyebilir. TV seçenekleri menüsüne (ör. Ses Resmi ayarlarına kısayol ekleme)

Özel bir seçenek belirtmek için kategoriyi filtreleyen bir intent filtresi tanımlayın Bir etkinlikte com.android.tv.category.OPTIONS_ROW. Özel özellik etkinlikteki cihaz üreticisi tarafından uygulanır. Etkinlik seçenek tıklandığında başlatılır. Etkinliğin başlığı ve simgesi şunun için kullanılır: bu seçeneği kullanabilirsiniz. Özelleştirilmiş TV seçenekleri, mevcut kullanıcı arayüzüyle uyumlu olmalıdır. en iyi kullanıcı deneyimi.

Not: Bir etkinlikte yalnızca bir seçenek kullanılabilir Canlı TV, aynı canlı yayın için bir etkinlikteki amaç filtrelerini kategorisi nedeniyle sınırlandırıldı. Tek bir ekranda birden fazla seçeneği ele alma etkinliğini kontrol edin.

Cihaz üreticileri ayrıca, mevcut bir donanımdan önce veya sonra özel bir seçenek AndroidManifest.xml içinde android:priority tanımlayarak bu tür seçenekleri keşfedin. Tanımlanmış öncelik değeri 100'den düşük olan bir seçenek, mevcut sonra 100'den yüksek bir değer gösterilir. Birden çok özel seçenek ( mevcut seçeneklerden önce veya sonra) önceliklerine göre artan düzende sıralanır. sipariş. Seçenekler aynı önceliğe sahipse, aralarındaki sıralama tanımlanmamış olur.

Bu örnekte seçenek, ilk olarak TV seçenekleri satırında görünür ve Seçenek tıklandığında PictureSettingsActivity başlatılır.

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

Özelleştirilmiş TV seçenekleri satırı

2. Şekil. Özelleştirilmiş TV seçenekleri satırı (Parlaklık ve Enerji Tasarrufu).

Örnek özel TV seçenekleri.

3. Şekil. Örnek özel TV seçenekleri.

Bir etkinlikte birden fazla seçeneği yönetme

Bir seçenek, etkinliğin intent filtresiyle eşleşir. Bunun tersi de geçerlidir. Çünkü Android Amaç filtrelerini aynı kategori ve işlemlerle ayırt etmiyorsa, etkinlik, birden fazla amaç filtresi bildirilmiş olsa bile yalnızca bir seçeneği işler inceleyebilirsiniz. Bir etkinlikte birden fazla seçeneği yönetmek için AndroidManifest.xml içinde <activity-alias>. etkinliği yoksa tıklanan seçeneği tanımlamak için getIntent().getComponent() değerini kullanın.

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

Özel satır oluştur

Cihaz üreticileri, TV seçenekleri satırının üstüne bir satır ekleyebilir ve bu satırı özelleştirebilir. Bu özel satır isteğe bağlıdır.

Satır başlığı

Şurada bir partner_row_title dizesi tanımlayın: res/values/strings.xml. Dizenin değeri özel satır başlığı.

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

Özel seçenekler

Özel satıra özel seçenekler eklemek için seçenek ekleme sürecini uygulayın TV seçenekleri menüsüne, ancak kategori adını Bunun yerine 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>

İsteğe bağlı özel satır örneği.

4. Şekil. İsteğe bağlı özel satır örneği.

Örnek özel seçenek iletişim kutusu.

5. Şekil. Örnek özel seçenek iletişim kutusu.