Referans TV uygulamasını özelleştirin

Live TV, Android televizyon cihazları için tasarlanmış bir referans TV uygulamasıdır. Ancak cihaz üreticileri, Canlı TV'nin varsayılan uygulaması kapsamında olmayan resim ayarlama, oyun modu veya 3D modu gibi ürüne özel daha fazla işlev eklemek isteyebilir. Bu cihaza özgü işlevleri veya seçenekleri desteklemek için Live TV şu özelleştirmeleri destekler:

  • Kullanıcıların duraklatmasına, hızlı ileri sarmasına ve geri sarmasına olanak tanıyan zaman kaydırma modunu etkinleştirme. Zaman kaydırma modunu dahili depolama yerine harici depolamayı kullanacak şekilde yapılandırma.
  • TV seçenekleri satırına seçenekler ekleniyor.
  • Özel bir satır ekleme ve bu satıra seçenekler ekleme.

Not : Canlı Kanallar, Google hizmetlerinin bulunduğu cihazlarda olduğu gibi kullanılabilen, Google'ın Canlı TV uygulamasıdır. Canlı Kanalları özelleştirmek için bu talimatlardaki com.android.tv.* com.google.android.tv.* ile değiştirin.

Canlı TV'yi özelleştirin

Canlı TV'yi özelleştirmek için hedef Android TV cihazının, com.android.tv.permission.CUSTOMIZE_TV_APP iznine sahip önceden oluşturulmuş bir sistem uygulaması olması gereken bir özelleştirme paketinin yüklü olması gerekir.

Live TV, bu izne sahip bir sistem paketini arar, kaynak dosyalarını kontrol eder ve özelleştirmeyi işlemek için paketin belirli kategorilerle işaretlenmiş Etkinliklerini algılar.

Anahtar nokta : Canlı TV'yi yalnızca bir paket özelleştirebilir.

Zaman kaydırma modunu yapılandırma

Zaman kaydırma (trickplay), Android televizyon cihazlarının kanal oynatmayı duraklatmasına, geri sarmasına ve hızlı ileri sarmasına olanak tanır. Canlı TV uygulamasında zaman kaydırma, Oynatma kontrolleri kullanıcı arayüzü aracılığıyla kullanılabilir. Zaman kaydırma, Canlı TV'de varsayılan olarak etkindir ancak devre dışı bırakılabilir. Zaman kaydırma, yalnızca harici depolamayı kullanacak şekilde de yapılandırılabilir.

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ştirin. Hiçbir seçenek verilmediğinde bu varsayılan değerdir.
  • disabled : Zaman kaydırmayı devre dışı bırakın.
  • use_external_storage_only : Harici depolamayı kullanmak için zaman kaydırmayı yapılandırın.
<string name="trickplay_mode">use_external_storage_only</string>
Oynatma kontrolleri kullanıcı arayüzü, D-pad'in orta düğmesine basıldıktan sonra etkinleştirilir.

Şekil 1 . Oynatma kontrolleri kullanıcı arayüzü, D-pad'in orta düğmesine basıldıktan sonra etkinleştirilir.

TV seçeneklerini özelleştirin

Cihaz üreticileri, Canlı TV ayarları için mevcut TV seçenekleri menüsüne Ses Görüntü ayarlarına kısayol eklemek gibi özel seçenekler ekleyebilir.

Özel bir seçenek belirtmek için bir etkinlikteki com.android.tv.category.OPTIONS_ROW kategorisini filtreleyen bir amaç filtresi bildirin. Özel özellik, etkinlikte cihaz üreticisi tarafından uygulanır. Seçenek tıklatıldığında etkinlik başlatılır. Seçenek için etkinliğin başlığı ve simgesi kullanılır. Özelleştirilmiş TV seçenekleri, en iyi kullanıcı deneyimini sağlamak için mevcut kullanıcı arayüzüyle eşleşmelidir.

Not : Canlı TV, Android sınırlaması nedeniyle aynı kategorideki bir etkinlikteki amaç filtrelerini ayırt edemediğinden, bir etkinlik yalnızca bir seçeneği işleyebilir. Geçici bir çözüm için bkz . Bir etkinlikte birden fazla seçeneği işleme .

Cihaz üreticileri ayrıca AndroidManifest.xml dosyasında android:priority tanımlayarak mevcut seçeneklerin önüne veya arkasına özel bir seçenek yerleştirebilir. Tanımlanmış öncelik değeri 100'ün altında olan bir seçenek mevcut öğelerden önce, 100'den yüksek bir değer ise sonra gösterilir. Birden çok özel seçenek (mevcut seçeneklerden önce veya sonra), önceliklerine göre artan sırada sıralanır. Seçenekler aynı önceliğe sahipse aralarındaki sıralama tanımsızdır.

Bu örnekte, TV seçenekleri satırında ilk olarak seçenek görünür ve seçenek tıklanırsa 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>

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

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

Örnek özel TV seçenekleri.

Figür 3 . Örnek özel TV seçenekleri.

Bir etkinlikte birden fazla seçeneği işleme

Bir seçenek, bir etkinliğin amaç filtresiyle eşleşir ve bunun tersi de geçerlidir. Android, aynı kategorilere ve eylemlere sahip amaç filtrelerini ayırt etmediğinden, bir etkinlik, içinde birden fazla amaç filtresi bildirilmiş olsa bile yalnızca bir seçeneği işler. Bir etkinlikte birden fazla seçeneği yönetmek için AndroidManifest.xml dosyasında <activity-alias> kullanın. Etkinlikte, tıklanan seçeneği tanımlamak için getIntent().getComponent() 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 bir satır oluşturun

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

Satır başlığı

res/values/strings.xml dosyasında bir partner_row_title dizesi tanımlayın. Dizenin değeri özel satır başlığı için kullanılır.

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

Özel seçenekler

Özel satıra özel seçenekler eklemek için TV seçenekleri menüsüne seçenek ekleme işlemini izleyin ancak bunun yerine kategori adını com.android.tv.category.PARTNER_ROW olarak değiştirin.

<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ı örnekleyin.

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

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

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