page.title=TV App Quality
page.metaDescription=TV is a growing segment of Android devices that requires specific attention to app design and functionality in order to create a great experience.
page.image=/distribute/images/gp-tv-quality.png
@jd:body

<div id="qv-wrapper"><div id="qv">
<h2>Quality Criteria</h2>
  <ol>
    <li><a href="#ux">Design and Interaction</a></li>
    <li><a href="#fn">Functionality</a></li>
    <li><a href="#faq">Frequently Asked Questions</a></li>
  </ol>

  <h2>You Should Also Read</h2>
  <ol>
    <li><a href="{@docRoot}distribute/essentials/quality/core.html">
      Core App Quality</a></li>
    <li><a href="{@docRoot}distribute/essentials/optimizing-your-app.html">
      Optimize Your App</a></li>
  </ol>
</div>
</div>

<div class="top-right-float" style="padding-right:0;margin-bottom:1em;">
  <img src="{@docRoot}distribute/images/gp-tv-quality.png" style="width:480px;">
</div>

<p>
  Users have a different set of expectations when watching TV, compared to using a phone or tablet.
  A typical TV user sits about 10 feet away from the screen, so small details are less noticeable
  and small text is hard to read. Since users sit away from a TV, they must use a remote
  control device to navigate and make selections rather than touching elements on screen. These
  differences significantly change the requirements for what makes a good TV user experience.
</p>

<p>
  The first step toward creating a great experience for TV users is to review and follow the
  <a href="{@docRoot}design/tv/index.html">Android TV design guidelines</a>, which provides
  instructions on how to build the best user experience for TV apps. You should also review the
  <a href="{@docRoot}training/tv/start/index.html">Building TV Apps</a> training, to understand the
  basic implementation requirements for a TV app.
</p>

<p class="caution">
  <strong>Important:</strong> To ensure a great user experience, apps for TV devices must meet some
  specific requirements for usability. Only apps that meet the following quality criteria will
  qualify as an Android TV app on Google Play.
</p>

<p class="note"><strong>Note:</strong> For information about how to publish your TV apps in Google Play,
see <a href="{@docRoot}distribute/googleplay/tv.html">Distributing to Android TV</a>.</p>



<div class="headerLine">
  <h2 id="ux">
  Visual Design and User Interaction
  </h2>


</div>

<p>
  These criteria ensure that your app follows critical design and interaction patterns
  to ensure a consistent, intuitive, and enjoyable user experience on TV devices.
</p>

<table>

<tr>
  <th style="width:2px;">
    Type
  </th>
  <th style="width:54px;">
    Test
  </th>
  <th>
    Description
  </th>
</tr>

<tr>
  <td rowspan="4" id="launcher">
    Launcher
  </td>

  <td id="TV-LM">
    TV-LM
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      App displays a launcher icon in the Android TV Launcher after installation.
      (<a href="{@docRoot}training/tv/start/start.html#tv-activity">Learn how</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-LB">
    TV-LB
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      App displays a 320px x 180px full-size banner as its launcher icon in the Android TV Launcher.
      (<a href="{@docRoot}design/tv/patterns.html#banner">Learn how</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-BN">
    TV-BN
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      App launch banner contains the name of the app.
      (<a href="{@docRoot}design/tv/patterns.html#banner">Learn how</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-LG">
    TV-LG
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      If the app is a game, it appears in the Games row in the Android TV Launcher.<br>
      (<a href="{@docRoot}training/tv/games/index.html#manifest">Learn how</a>)
    </p>
  </td>
</tr>

<tr>
  <td rowspan="5" id="layout">
    Layout
  </td>

  <td id="TV-LO">
    TV-LO
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      All app interfaces are presented in landscape orientation.
      (<a href="{@docRoot}training/tv/start/layouts.html#structure">Learn how</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-TC">
    TV-TC
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      App displays core text at 16sp or higher in size.
      (<a href="{@docRoot}design/tv/style.html#typography">Learn how</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-TA">
    TV-TA
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      App displays all text at 12sp or higher in size.
      (<a href="{@docRoot}design/tv/style.html#typography">Learn how</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-OV">
    TV-OV
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      App does not display any text or functionality that is partially cut off by the
      edges of the screen.
      (<a href="{@docRoot}training/tv/start/layouts.html#overscan">Learn how</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-TR">
    TV-TR
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      App does not partially obscure other apps. App fills the entire screen and has a
      non-transparent background.
    </p>
  </td>
</tr>

<tr>
  <td rowspan="3" id="navigation">
    Navigation
  </td>

  <td id="TV-DP">
    TV-DP
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      App functionality is navigable using 5-way D-pad controls, unless the app
      requires a gamepad controller as specified in <a href="#TV-GP">TV-GP</a>.
      (<a href="{@docRoot}training/tv/start/navigation.html#d-pad-navigation">Learn how</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-DK">
    TV-DK
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      If the app requires a game controller, as specified in <a href="#TV-GP">TV-GP</a>, all
      functionality is navigable using standard Android game controller keys.
      (<a href="{@docRoot}training/game-controllers/controller-input.html#button">Learn how</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-DM">
    TV-DM
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      App does not depend on a remote controller having a Menu button to access user interface
      controls.
      (<a href="{@docRoot}training/tv/start/navigation.html#d-pad-navigation">Learn how</a>)
    </p>
  </td>
</tr>


</table>


<h3 class="rel-resources clearfloat">Related resources</h3>

<div class="resource-widget resource-flow-layout col-13" data-query=
"collection:distribute/essentials/tvqualityguidelines/visualdesign"
data-sortorder="-timestamp" data-cardsizes="9x3" data-maxresults="6">
</div>



<div class="headerLine">
  <h2 id="fn">
  Functionality
  </h2>


</div>

<p>
  These criteria ensure that your app is configured correctly and provides expected
  functional behavior.
</p>


<table>
<tr>
  <th style="width:2px;">
    Type
  </th>
  <th style="width:54px;">
    Test
  </th>
  <th>
    Description
  </th>
</tr>

<tr>
  <td rowspan="2" id="manifest">
   Manifest
  </td>

  <td id="TV-ML">
    TV-ML
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      App manifest sets an intent type of {@link android.content.Intent#ACTION_MAIN} with category
      {@link android.content.Intent#CATEGORY_LEANBACK_LAUNCHER}.
      (<a href="{@docRoot}training/tv/start/start.html#tv-activity">Learn how</a>)
    </p>
  </td>
</tr>

</tr>
  <td id="TV-MT">
    TV-MT
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      App manifest sets the hardware feature {@code android.hardware.touchscreen} to not required.
      (<a href="{@docRoot}training/tv/start/hardware.html#declare-hardware-requirements">Learn
      how</a>)
    </p>
  </td>
</tr>

<tr>
  <td rowspan="2" id="game-controllers">
    Game Controllers
  </td>

  <td id="TV-GP">
    TV-GP
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      If the app uses a game controller as it's primary input method, it declares the appropriate
      requirement with the <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"
      >{@code &lt;uses-feature>}</a> manifest tag.
      (<a href="{@docRoot}training/tv/games/index.html#gamepad">Learn how</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-GC">
    TV-GC
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      If the app provides visual instructions for using game controllers, the instructions should
      be free of branding and show a compatible button layout.
      (<a href="{@docRoot}training/tv/games/index.html#ControllerHelp">Learn how</a>)
    </p>
  </td>
</tr>

<tr>
  <td rowspan="4" id="advertising">
    Advertising
  </td>

  <td id="TV-AP">
    TV-AP
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      App allows interaction with advertising using D-pad controls.
      (<a href="{@docRoot}training/tv/start/navigation.html#d-pad-navigation">Learn how</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-AD">
    TV-AD
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      For advertising that uses fullscreen, non-video ads, the app allows the user to
      immediately dismiss the ad with D-pad controls.
    </p>
  </td>
</tr>

<tr>
  <td id="TV-AU">
    TV-AU
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      For advertising that uses clickable, non-fullscreen, non-video ads, the app does not allow
      ads to link to a web URL.
    </p>
  </td>
</tr>

<tr>
  <td id="TV-AA">
    TV-AA
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      For advertising that uses clickable, non-fullscreen, non-video ads, the app does not allow
      ads to link to another app that is not available on TV devices.
    </p>
  </td>
</tr>

<tr>
  <td rowspan="1" id="web">
    Web Content
  </td>

  <td id="TV-WB">
    TV-WB
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      For web content, the app uses {@link android.webkit.WebView} components and does not attempt
      to launch a web browser app.
    </p>
  </td>
</tr>

<tr>
  <td rowspan="3" id="media-playback">
    Media Playback
  </td>

  <td id="TV-NP">
    TV-NP
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      If the app continues to play sound or video after the user has left, the
      app provides a <em>Now Playing</em> card on the home screen recommendation
      row so users can return to the app to control playback.
      (<a href="{@docRoot}training/tv/playback/now-playing.html">Learn how</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-PA">
    TV-PA
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      If the app provides a <em>Now Playing</em> card, selecting this card takes the user to
      a screen that allows playback to be paused.
      (<a href="{@docRoot}training/tv/playback/now-playing.html">Learn how</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-PP">
    TV-PP
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      If the app plays video or music content, the app toggles between play and pause of media
      playback when a play or pause key event is sent during playback.<br>
      (<a href="{@docRoot}reference/android/view/KeyEvent.html#KEYCODE_MEDIA_PLAY_PAUSE">Learn
      how</a>)
    </p>
  </td>
</tr>


</table>


<h3 class="rel-resources clearfloat">Related resources</h3>

<div class="resource-widget resource-flow-layout col-13" data-query=
"collection:distribute/essentials/tvqualityguidelines/functionality"
data-sortorder="-timestamp" data-cardsizes="9x3" data-maxresults="6">
</div>


<div class="headerLine">
  <h2 id="faq">
  Frequently Asked Questions
  </h2>
</div>

<p style="margin-top:30px;">
  <strong>After I submit my app, how will find out if my app does not meet all the requirements for
  TV devices?</strong>
</p>
<p>
  If your app does not meet the usability requirements described on this page, the Play Store team
  will contact you through the email address specified in main <a href=
  "https://play.google.com/apps/publish/">Google Play Developer Console</a> account associated with
  the app.
</p>
<p class="caution">
  <strong>Caution:</strong> Make sure your app includes the <a href=
  "{@docRoot}preview/tv/start/index.html#tv-activity">required manifest entries</a> for TV devices,
  otherwise your app will not be considered a TV app and will not be reviewed for TV usability
  requirements.
</p>


<p style="margin-top:30px;">
  <strong>My app targets more than just TV devices. If my app does not meet the TV device
  requirements, will my new or updated app still appear on Google Play for phones and
  tablets?</strong>
</p>
<p>
  Yes. The requirements described above only restrict distribution to the Google Play Store on TV
  devices. Distribution to other device types, such as phones, tablets and other devices, is not
  affected.
</p>


<p style="margin-top:30px;">
  <strong>If my app meets the publishing requirements, when will it be available in the Google
    Play Store on TV devices?</strong>
</p>

<p>
  Apps that meet the requirements for TV will appear in the Google Play Store on TV devices
  <em>after</em> the official release of Android 5.0.
</p>