Android TV provides developers with a brilliant way to expand their market and provide a living room experience with their Android games and apps. Google has streamlined the process of putting a app onto Android TV but some steps are required. Use this guide to get you on-screen fast!

First Step: Checking Readiness

  1. The first two features may take some time depending on the initial design but are absolutely essential:
    • The application and all activities must support the landscape screen orientation. Confirm no activity in the app includes an android:screenOrientation of: portrait, reversePortrait, sensorPortrait, userPortrait or reverseLandscape.
    • Ensure full controller support throughout the app. This includes all menus, sub menus, options screens and use of the app or gameplay. In addition, verify that all middleware, especially in-app advertising systems, have full controller support and do not assume a touchscreen is present.
      > For navigation, crucial UI and user control you must not rely on KEYCODE_BUTTON_START, KEYCODE_MENU, KEYCODE_SELECT or KEYCODE_SEARCH.
  2. Create a banner graphic for the Android TV UI measuring 320x180 pixels. This is used as the app's Banner in Android TV (see below).
  3. Modify the AndroidManifest.xml file to include these items.
    • The <uses-feature android:name="android.hardware.touchscreen" android:required="false"/ > declaration. This setting indicates the app does not require a touchscreen; the Play Store uses this flag to indicate the app is compatible with Android TV.
    • The new Leanback Launcher and Banner declarations. Android TV devices use these declarations to correctly launch the app and to display a nicely sized graphic in the main Android TV home screen.
    • Include the gamepad feature to indicate if a full game controller is required using <uses-feature android:name="android.hardware.gamepad"/> or if there's full functionality with just a remote, add android:required="false" to the declaration.
    • If the app is a game, add the <android:name="isGame" android:value="true"> declaration. Android TV devices place installed apps with this declaration in the "Games" section of the Android TV home screen.
  4. If the app uses Android features or sensors, confirm they do not exclude the game from Android TV.

Second Step: Enhancing the Experience

The first step covers the basics; it gets the app Android TV ready. To make a truly great user experience, also consider the additional areas (such as UI design, performance on a big screen and embracing multiple game controllers) discussed in the Android TV Developer Guide.

Final Step: Publishing

With the above complete, the game is ready for listing on the Android TV Play Store. Unlike the standard Android Play Store, apps do not automatically appear in the Android TV Play Store; developers must submit Android TV ready apps for inclusion. To submit a title for Android TV:

  1. Submit the app or game as you normally would using the Android Developer Console.
  2. Within the Android Developer Console, go to the "Pricing & Distribution" tab.
  3. From the "Pricing & Distribution" tab, scroll down the page until you find the "Distribute your app on Android TV" checkbox and check the box.
  4. Click "Save".

Once submitted, Google takes approximately two weeks to review and approve the app or game. Once approved, it shows up in the Play Store for Android TV and is available to Android TV devices.

Checklist

Requirement Yes/No
Does the application and all its activities support landscape screen orientation?  
Is there full controller support throughout the app/game, menus, sub menus and options? Do all middleware libraries and systems have full controller support?  
Are the non-standard buttons: KEYCODE_BUTTON_START, KEYCODE_MENU, KEYCODE_SELECT and KEYCODE_SEARCH, not relied on for critical navigation and control.  
Is a 320x180 Banner graphic included in the APK as a resource and referenced in the manifest (...android:banner="@drawable/banner" >)?  
Is the touchscreen NOT required declaration in the manifest (<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>)?  
Is the Leanback feature declared (<uses-feature android:name="android.software.leanback" android:required="false"/>) and Leanback Launcher intent handled?

<activity ...
  <intent-filter>
    <action ...>
    <category 
      android:name="android.intent.category.LEANBACK_LAUNCHER" />
  </intent-filter>
</activity>
 
Is the gamepad declaration in the manifest (<uses-feature android:name="android.hardware.gamepad"/>) and if a full controller is not needed for full functionality, is that specified (<uses-feature android:name="android.hardware.gamepad" android:required="false"/>)?  
For games, is the isGame declaration in the manifest (<android:name="isGame" android:value="true"/>)?  
Are all Android features and sensors Android TV friendly?  
When the game was submitted to Play Store, was the "Distribute your app on Android TV" checkbox checked in the Android Developer Console?