Referans TV uygulamasını özelleştirme

Canlı TV, Android televizyon cihazları için tasarlanmış bir referans TV uygulamasıdır. Ancak cihaz üreticileri, Canlı TV'nin varsayılan uygulamasında yer almayan resim ayarı, oyun modu veya 3D mod gibi ürüne özel daha fazla işlev eklemek isteyebilir. Cihaza özgü bu işlevleri veya seçenekleri desteklemek için Canlı TV aşağıdaki özelleştirmeleri destekler:

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

Not: Canlı Kanallar, Google hizmetlerinin yüklü olduğ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.* ifadesini com.google.android.tv.* ile değiştirin.

Canlı TV'yi özelleştirme

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

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

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

Zaman kaydırma modunu yapılandırma

Zaman kaydırma (hileli oynatma), Android televizyon cihazlarının kanal oynatmayı duraklatmasına, geri sarmasına ve ileri sarmasına olanak tanır. Canlı TV uygulamasında zaman kaydırma özelliği, Oynatma kontrolleri kullanıcı arayüzü üzerinden kullanılabilir. Canlı TV'de zaman kaydırma özelliği varsayılan olarak etkindir ancak devre dışı bırakılabilir. Zaman kaydırma özelliği, yalnızca harici depolama alanını kullanacak şekilde de yapılandırılabilir.

Zaman kaydırma özelliğini yapılandırmak için trickplay_mode dize kaynağını ekleyin ve değerini aşağıdaki seçeneklerden birine ayarlayın:

  • enabled: Zaman kaydırma özelliğini etkinleştirin. Hiçbir seçenek belirtilmediğinde varsayılan değerdir.
  • disabled: Zaman kaydırma özelliğini devre dışı bırakır.
  • use_external_storage_only: Zaman kaydırma özelliğini harici depolama alanını kullanacak şekilde yapılandırın.
<string name="trickplay_mode">use_external_storage_only</string>
D-pad&#39;in orta düğmesine bastıktan sonra Play kontrolleri kullanıcı arayüzü etkinleştirilir.

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

TV seçeneklerini özelleştirme

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

Özel bir seçenek belirtmek için bir etkinlikte com.android.tv.category.OPTIONS_ROW kategorisini filtreleyen bir intent-filter bildirin. Özel özellik, etkinlikte cihaz üreticisi tarafından uygulanır. Seçenek tıklandığı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 sunmak için mevcut kullanıcı arayüzüyle eşleşmelidir.

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

Cihaz üreticileri, AndroidManifest.xml içinde android:priority tanımlayarak mevcut seçeneklerden önce veya sonra özel bir seçenek de yerleştirebilir. Tanımlanmış öncelik değeri 100'den düşük olan bir seçenek mevcut öğelerden önce, 100'den yüksek olan bir seçenek ise sonra gösterilir. Birden fazla özel seçenek (mevcut seçeneklerden önce veya sonra), önceliklerine göre artan düzende sıralanır. Seçenekler aynı önceliğe sahipse aralarındaki sıra tanımlanmaz.

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

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

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

Özel TV seçeneklerine örnek.

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

Bir etkinlikte birden fazla seçenek kullanma

Bir seçenek, bir etkinliğin intent filtresiyle eşlenir ve bunun tersi de geçerlidir. Android, aynı kategori ve işlemlere sahip intent filtrelerini ayırt etmediğinden, bir etkinlikte birden fazla intent filtresi tanımlanmış olsa bile etkinlik yalnızca bir seçeneği işler. Bir etkinlikte birden fazla seçeneği işlemek için AndroidManifest.xml içinde <activity-alias> kullanın. Etkinlikte, 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şturma

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

Satır başlığı

res/values/strings.xml içinde bir partner_row_title dizesi tanımlayın. Dizinin 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 uygulayın ancak 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 örneği.

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

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

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