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();
    // ...
}

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

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