TV kumandalarını yönetme

TV cihazları, uygulamalarla etkileşimde bulunmak için ikincil bir donanım cihazı gerektirir (temel bir donanım). uzaktan kumanda veya oyun kumandası kullanın. Bu nedenle, uygulamanız yön tuşları (D-pad) girişini desteklemelidir. Ayrıca, uygulamanızın çevrimdışıyken birden fazla kumandadan giriş yapıp kumandaları yönetmesi gerekebilir. kontrol edebilirsiniz.

Bu kılavuzda, TV cihazları için kumandaların kullanımıyla ilgili şartlar açıklanmaktadır.

D-pad minimum kontrolleri

TV cihazlarının varsayılan kumandası D-pad'dir. Genel olarak, uygulamanız Yalnızca yukarı, aşağı, sol, sağ, seçme, Geri ve Ana sayfa düğmeleri olan uzaktan kumanda. Uygulamanız Genellikle ek kontrollere sahip bir oyun kumandası gerektiren bir oyundur. yalnızca bu d-pad kontrolleriyle oynanabilirliği desteklemeye çalışın. Aksi takdirde, kullanıcıyı için bir kumanda gereklidir ve d-pad kumandasını kullanarak oyununuzdan sorunsuz bir şekilde çıkmalarını sağlarsınız.

TV cihazlarının D-pad kumandalarıyla gezinme hakkında daha fazla bilgi için bkz. TV'de gezinme.

Kumandanın bağlantı kesilmesini yönetme

TV kumandaları genellikle Bluetooth cihazlardır. Bu cihazlar düzenli aralıklarla güç tasarrufu yapmaya çalışabilir uyku moduna geçiyor ve TV cihazıyla bağlantısı kesiliyor. Bunun anlamı, uygulamanızın bu yeniden bağlanma etkinliklerini işleyecek şekilde yapılandırılmamışsa kesintiye uğratılır veya yeniden başlatılır. Bu etkinlikler aşağıdaki durumlardan herhangi birinde gerçekleşebilir:

  • Birkaç dakika süren bir video, d-pad veya oyun sırasında Kumanda uyku moduna geçebilir, TV cihazıyla bağlantısını kesebilir ve daha sonra yeniden bağlanabilir.
  • Oyun esnasında yeni bir oyuncu oyuna katılan bir oyun kumandası kullanarak bağlı değil.
  • Oyun sırasında bir oyuncu oyundan ayrılıp oyun kumandasının bağlantısını kesebilir.

Bağlantısı kesilen ve yeniden bağlanılan tüm TV uygulaması etkinlikleri şu şekilde yapılandırılmalıdır: uygulama manifestindeki yeniden bağlantı etkinliklerini işleyebilir. Aşağıdaki kod örneğinde, klavye veya gezinme cihazı da dahil olmak üzere yapılandırma değişikliklerini işlemek için bir etkinlik etkinleştir veya yeniden bağlanma:

<activity
  android:name="com.example.android.TvActivity"
  android:label="@string/app_name"
  android:configChanges="keyboard|keyboardHidden|navigation"
  android:theme="@style/Theme.Leanback">

  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
  </intent-filter>
  ...
</activity>

Bu yapılandırma değişikliği, uygulamanın yeniden bağlantı yoluyla çalışmaya devam etmesini sağlar. işlemidir. Bu, Android çerçevesi tarafından yeniden başlatılmak yerine, iyi bir kullanıcı deneyimi sağlar.

D-pad giriş varyasyonlarını işleme

TV cihazı kullanıcıları, TV'lerinde birden fazla türde kumandaya sahip olabilir. Örneğin, Örneğin, kullanıcının hem temel bir D-pad kumandası hem de bir oyun kumandası olabilir. Anahtar kodlar D-pad işlevleri için kullanıldığında oyun kumandası tarafından sağlanmış olan anahtardan farklı olabilir tarafından gönderilen kodlar.

D-pad girişindeki varyasyonları işleyin. uygulamanızı çalıştırmak için kumandalar arasında geçiş yapmanız gerekir. Güncellemelerle ilgili daha fazla bilgi için varyasyonları için bkz. Yön tuşlarıyla giriş yapın.

İşleme düğmesi etkinlikleri

Kullanıcı kumandadaki bir düğmeyi tıkladığında uygulamanız şuna sahip bir etkinlik alır: KeyEvent Amaçlanan düğmenin davranışı oynatma, duraklatma veya durdurma gibi bir medya etkinliği ya da seçim veya gezinme. İyi bir kullanıcı deneyimi sağlamak için ve kumanda düğmeleri gibi davranır.

TV kullanıcı arayüzü etkinlikleri

KeyEvent oluşturan düğmelere TV kullanıcı arayüzü davranışı atayın aşağıdaki tabloda gösterildiği gibidir:

KeyEventDavranış
KEYCODE_BUTTON_B, KEYCODE_BACKGeri
KEYCODE_BUTTON_SELECT, KEYCODE_BUTTON_A, KEYCODE_ENTER, KEYCODE_NUMPAD_ENTER KEYCODE_DPAD_CENTERSeçim
KEYCODE_DPAD_UP, KEYCODE_DPAD_DOWN, KEYCODE_DPAD_LEFT, KEYCODE_DPAD_RIGHTNavigasyon

Medya etkinlikleri

Kullanıcı medya izlerken, oluşturulan düğmelere davranışı atayın KeyEvent türleri aşağıdaki tabloda gösterildiği gibidir: Uygulamanız MediaSession MediaControllerAdapter kullanın MediaControllerCompat.TransportControls birini aramak yöntemlerinin hangileri olduğunu öğrenebilirsiniz. Seçim düğmelerinin Oynat veya Duraklat olarak çalıştığını unutmayın düğmelerinin anlamını kastediyoruz.

KeyEventTransportControls çağrısıDavranış
BUTTON_SELECT, BUTTON_A, ENTER, KEYCODE_NUMPAD_ENTER DPAD_CENTER play()Oynat
BUTTON_START, BUTTON_SELECT, BUTTON_A, ENTER, DPAD_CENTER, KEYCODE_NUMPAD_ENTER pause()Duraklat
BUTTON_R1skipToNext()Sonrakine atla
BUTTON_L1skipToPrevious()Öncekine atla
DPAD_RIGHT, BUTTON_R2, AXIS_RTRIGGER, AXIS_THROTTLEfastForward()İleri sarma
DPAD_LEFT, BUTTON_L2, AXIS_LTRIGGER, AXIS_BRAKErewind()Geri sar
Yokstop()Durdur

Not: MediaSession kullanırken medyaya özel düğmeler KEYCODE_MEDIA_PLAY veya KEYCODE_MEDIA_PAUSE. Sistem otomatik olarak uygun MediaSession.Callback yöntemidir.

Geri düğmesinin uygun şekilde çalışmasını sağlama

Geri düğmesi hiçbir zaman açma/kapatma işlevini kullanmamalıdır. Örneğin, bunu bir dosyayı hem açmak hem de kapatmak için tıklayın. Oynatıcının önceki ekranlar arasında içerik haritası tarzında geri gitmek için bunu kullanın açıldı.

Geri düğmesi yalnızca doğrusal, geri gitmeyi hedeflediğinden, uygulama içi menüyü farklı bir düğmeyle açık bırakıp uygulamaya dönmek için. Art arda geri düğmesine basıldığında her zaman Android TV ana ekranına yönlendirilmelidir. Örneğin: oyun > oyunu duraklatma ekranı > oyun ana ekranı > Android TV ana ekranı veya TV dizisini oynatma > TV uygulaması ana ekranı > Android TV ana ekranı.

Gezinmeye yönelik tasarım hakkında daha fazla bilgi için bkz. Geri ve Yukarı gezinmeyi tasarlama. Uygulama hakkında bilgi edinmek için Uygun geri gezinme sağlama.

Oyunlar için kumandaları yönetme

D-pad kontrollerini destekleyin

D-pad kontrolünün etrafında, kontrol şemanızı planlayın. varsayılan ayardır. Oyuncunun tüm koşullar için d-pad kullanabilmesi gerekir. hem temel oynanabilirlik kontrolü yapıyor hem de menülerde ve reklamlarda gezinmek istiyor. İşte bu nedenle Android TV oyununuzun, "Devam etmek için buraya dokunun."

Oyuncunun kumandayla etkileşimini nasıl şekillendirdiğiniz, harika bir kullanıcı kazanmanın anahtarı olabilir. sahip olacaksınız. Aşağıdaki en iyi uygulamalardan yararlanabilirsiniz:

  • Kumanda şartlarını önceden bildirin: Google Play açıklamanızı kullanın Böylece kumandalarla ilgili beklentileri oyuncuya iletebilir. Bir oyun, web'deki Aynı şekilde, oyun kumandası ve yalnızca D-pad'i olan bir oyun kumandası da bu durumu açıkça belirtin. Google’ın bir oyun için uygun olmayan bir kumanda kötü bir deneyim yaşayabilir ve kötü bir puan vermiş.
  • Tutarlı düğme eşleme kullanın: Kolayca kullanılabilen düğme eşleme özelliği çok önemlidir bir hedef anlamına gelir. Örneğin, A düğmesini kullanarak kabul edilen gümrüklere bağlı kalın kabul etmek için B düğmesini, iptal etmek için B düğmesini kullanın. Ayrıca, satış ve pazarlama sağlamak istiyoruz. Düğme eşleme hakkında daha fazla bilgi için Herkese açık kullanıcı adı denetleyici eylemleri.
  • Denetleyici özelliklerini algılayıp buna göre ayarlama yapın: Denetleyiciyi sorgulayın denetleyici ile oyun arasındaki eşlemeyi optimize etme konusundaki becerileri hakkında Örneğin, bir oyuncunun kumandayı havaya sallayarak bir nesneyi yönlendirmesini isteyebilirsiniz. ancak Oynatıcının kumandasında ivme ölçer ve jiroskop donanımı olmadığından el sallama işlevi işe yaramaz. Kumandayı sorgulayın ve hareket algılama özelliği etkin değilse destekleniyorsa alternatif, kullanılabilen bir kontrol şemasına geçin. Okuyucu Gelirleri Yöneticisi'ni denetleyici özelliklerini sorgulama hakkında daha fazla bilgi için bkz. Destek Android sürümlerinde denetleyiciler için de geçerlidir.

Uygun düğmeleri kullanın

Başlat, Ara veya Menü düğmesi bazı oyun kumandaları tarafından kullanılamaz. Kullanıcı arayüzünüzün şunlara bağlı olmadığından emin olun: konusunda daha fazla bilgi edinin.

Birden fazla kumandayı yönetme

Birden fazla oyuncu, her birinin kendi kumandasına sahip bir oyun oynarken ve oyuncu-denetleyici çiftinin eşlemesini yapın. Denetleyici numarasını uygulama hakkında bilgi için için bkz. getControllerNumber() değerleridir.

Kumandanın bağlantı kesilmesini yönetme

Oyun oynarken kumandanın bağlantısı kesilirse oyunu duraklatın ve ekranda bağlantısı kesilen oynatıcıdan kumandasını yeniden bağlamasını isteyen iletişim kutusu.

Ayrıca, iletişim kutusunda sorun giderme ipuçları da sunun. Örneğin, "Bluetooth bağlantınızı kontrol edin". Giriş cihazını uygulama hakkında daha fazla bilgi için için Kontrol cihazını kullanma işlemler ve Bluetooth'a genel bakış.

Kumanda talimatlarını göster

Oyununuz görsel oyun kontrolü talimatları sağlıyorsa bir marka içermeyen ve yalnızca Android ile uyumlu düğmeler içeren denetleyici resmi

Android uyumlu kumandanın örnek resimleri için şunu indirin: Android TV Oyun Kumandası Şablonu (ZIP). Siyah arka plan üzerinde beyaz bir kumanda ve beyaz üzerine siyah bir kumanda içerir. arka plan (Şekil 1'de gösterilmiştir) PNG dosyası ve Adobe® Illustrator® dosyası olarak görünür.

Şekil 1. Şunu kullanan örnek kumanda talimatları: Android TV Oyun Kumandası Şablonu.