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 },
)