Android TV

التنقّل باستخدام لوحة المفاتيح الاتجاهية على Android TV

يحتوي جهاز التحكّم عن بُعد في Android TV على لوحة مفاتيح رباعية الاتجاه ترسل أوامر تصل كأحداث رئيسية إلى dispatchKeyEvent(KeyEvent) من Activity. يجب تفويض هذه المهام إلى PlayerView:

Kotlin

override fun dispatchKeyEvent(event: KeyEvent?): Boolean{
  return playerView.dispatchKeyEvent(event!!) || super.dispatchKeyEvent(event)
}

Java

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
  return playerView.dispatchKeyEvent(event) || super.dispatchKeyEvent(event);
}

يُعدّ طلب التركيز على PlayerView مهمًا للتنقّل بين عناصر التحكّم في التشغيل وتخطّي الإعلانات. ننصحك بطلب التركيز في onCreate من Activity:

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  // ...
  playerView.requestFocus()
  // ...
}

Java

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // ...
    playerView.requestFocus();
    // ...
}

إذا كنت تستخدم Compose على Android TV، عليك جعل AndroidView قابلاً للتركيز وتفويض الحدث من خلال تمرير مَعلمة المعدِّل إلى AndroidView على النحو التالي:

AndroidView(
  modifier = modifier
    .focusable()
    .onKeyEvent { playerView.dispatchKeyEvent(it.nativeKeyEvent) },
  factory = { playerView }
)