На готовый пример сильно не смотри.
Чтобы приложение прошло модерацию
https://developer.android.com/training/tv/publishi...
Если свести к одной фразе "Комфортно управлять приложением пультом с растояния 5 метров при идеальном зрении"
Не циклился бы на нем. Китайских ТВ приставок больше. Прикидываются гугл пикселем, чтобы запускались обычные приложения.
<uses-feature
android:name="android.software.leanback"
android:required="false" />
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
чтобы запускался не только на андроид тв , второе чтобы запускался на телевизорах
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
Маин активити, чтобы стартовала на ATV
<receiver
android:name=".tv.RunOnInstallReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.media.tv.action.INITIALIZE_PROGRAMS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<service
android:name=".tv.AddMenuService"
android:exported="true"
android:permission="android.permission.BIND_JOB_SERVICE" />
Это вынести на главный экран ATV свою строчку превьюх
Ну а остальное - адаптация под навигацию с кнопок
android:focusable="true"
первый твой друг - чтобы элемент можно было выбрать кнопками
android:nextFocusXX
В разных вариантах - чтобы правильно переходило между элементами
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true">
<shape android:shape="rectangle" >
<solid android:color="@color/colorPrimary" />
<stroke
android:width="3dp"
android:color="@color/border_blue_btn" />
</shape>
</item>
<item>
<shape android:shape="rectangle" >
<solid android:color="@color/colorPrimary" />
</shape>
</item>
</selector>
Придется освоить подобное в дравебле