Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b455eb7b authored by Joe Fernandez's avatar Joe Fernandez Committed by Android Git Automerger
Browse files

am 5b349c4c: am e2f757d9: am a63f81ec: am e15773be: Merge "docs: Android TV...

am 5b349c4c: am e2f757d9: am a63f81ec: am e15773be: Merge "docs: Android TV publishing requirements" into klp-modular-docs

* commit '5b349c4c':
  docs: Android TV publishing requirements
parents d4410a19 5b349c4c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -76,6 +76,8 @@
        Hardware Features</a></li>
      <li><a href="<?cs var:toroot ?>preview/tv/adt-1/index.html">
        ADT-1</a></li>
      <li><a href="<?cs var:toroot ?>preview/tv/publish/index.html">
        Publishing TV Apps</a></li>
    </ul>
  </li>

+5 −0
Original line number Diff line number Diff line
@@ -8,6 +8,11 @@ footer.hide=1
  experience. It's important to understand how your app is presented in the main user interface and
  how your app can help users get to the content they want quickly.</p>

<p class="note">
  <strong>Important:</strong> There are specific requirements your app must meet in order to
  qualify as an Android TV app on Google Play. For more information, see the requirements listed
  in <a href="{@docRoot}preview/tv/publish/index.html">Publishing TV Apps</a>.
</p>

<h2>Home Screen</h2>

+43 −9
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ developers. These areas include its large size, its control scheme, and the fact
players are viewing it simultaneously.</p>


<h2 id=display>Display</h2>
<h2 id="display">Display</h2>
<p>The two main things to keep in mind when developing games for the TV screen are its nature as a
shared display and the need to design your game for a landscape orientation.</p>
<h3>Shared display</h3>
@@ -105,14 +105,48 @@ Controllers"</a>. Specific information about Bluetooth connections is at <a
href="http://developer.android.com/guide/topics/connectivity/bluetooth.html">Bluetooth</a>.</p>

<h2 id="manifest">Manifest</h2>
<p>Games are displayed in a separate row from regular apps in the launcher. Android TV uses the
<code>android:isGame</code> flag to differentiate games from non-game apps. You can assign it a
value of either <code>true</code> or <code>false</code>. For example:</p>
<pre class="fragment">&lt;application&gt;

<p>
  Games are displayed in a separate row from regular apps in the launcher. Android TV uses the
  <code>android:isGame</code> attribute to differentiate games from non-game apps. Set this value
  to <code>true</code> in your game's app manifest, as shown in the following code example:
</p>

<pre class="fragment">
&lt;application&gt;
  ...
&lt; android:isGame=["true" | "false"] &gt;
  &lt; meta-data android:name="isGame" android:value="true" &gt;
  ...
&lt;/application&gt;</pre>
&lt;/application&gt;
</pre>


<h3 id="gamepad">Game Controllers</h3>

<p>
  Games controllers may not be available or active for users of a TV device. In order to properly
  inform users that your game requires (or just supports) a game controller, you must include
  entries in the app manifest. If your game requires a game controller, you must include the
  following entry in your app manifest:
</p>

<pre>
  &lt;uses-feature android:name="android.hardware.gamepad"/&gt;
</pre>

<p>
  If your game uses, but does not require, a game controller, include the following feature
  entry in your app manifest:
</p>

<pre>
  &lt;uses-feature android:name="android.hardware.gamepad" android:required="false"/&gt;
</pre>

<p>For more information about manifest entries, see
  <a href="{@docRoot}guide/topics/manifest/manifest-intro.html">App Manifest</a>.
</p>


<h2 id="gpgs">Google Play Game Services</h2>
<p>If your game integrates Google Play Game Services, you should keep in mind a number of
+205 −0
Original line number Diff line number Diff line
page.title=Publishing TV Apps
page.tags="requirements","usability"

@jd:body

<div id="qv-wrapper">
<div id="qv">
  <h2>In this document</h2>
  <ol>
    <li><a href="#requirements">Publishing Requirements for TV Apps</a>
      <ol>
        <li><a href="#requirements-manifest">Manifest Requirements</a></li>
        <li><a href="#requirements-usability">Usability Requirements</a></li>
      </ol>
    </li>
    <li><a href="#faq">Frequently Asked Questions</a></li>
  </ol>
</div>
</div>

<p>
  Apps for TV devices can be published like other Android apps. You must prepare your app for
  release and then you can publish it through <a href=
  "{@docRoot}distribute/googleplay/index.html">Google Play</a>. In order for your app to be
  accepted as a TV app in Google Play, it must meet some additional requirements, which are covered
  in this document.
</p>

<p class="note">
  <strong>Note:</strong> You will not be able to publish apps to TV devices through <a href=
  "{@docRoot}distribute/googleplay/index.html">Google Play</a> until Android L SDK is released.
</p>


<h2 id="requirements">Publishing Requirements for TV Apps</h2>

<p>
  Your app must provide specific manifest declarations and meet some minimum usability requirements
  before it can qualify as TV app on Google Play. Make sure your app meets these requirements to
  get your app ready for TV devices.
</p>

<p class="caution">
  <strong>Caution:</strong> Your app must meet all of the requirements described in this section in
  order to qualify as a TV app on Google Play. If your app does not meet the usability requirements
  described below, the Google Play 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>

<h3 id="requirements-manifest">Manifest Requirements</h3>

<p>
  Developers who want their apps to be considered for publishing on TV devices <em>must</em>
  include a manifest entry that declares an activity which handles the {@code
  android.intent.category.LEANBACK_LAUNCHER} intent filter. For more information about including
  the required manifest entries, see <a href=
  "{@docRoot}preview/tv/start/index.html#tv-activity">Get Started with TV Apps</a>.
</p>

<p class="caution">
  <strong>Caution:</strong> If you do not include the <a href=
  "{@docRoot}preview/tv/start/index.html#tv-activity">required manifest entries</a> for TV devices,
  your app is not considered as a TV app. The app will not be reviewed for the TV app usability
  requirements and will not be able to qualify as a TV app on Google Play.
</p>


<h3 id="requirements-usability">Usability Requirements</h3>

<p>
  Users bring a different set of expectations when watching TV. Apps for Android TV devices have a
  different interaction, look and feel from Android apps on the phone or tablet. How users interact
  with TVs (with a remote control device) and how they view them (sitting about 10 feet away),
  significantly changes the requirements for what makes a good user experience in an app.
</p>

<p>
  The first step toward creating a great experience for users on TV is to review and follow the
  <a href="{@docRoot}preview/tv/design/index.html">Design for TV</a> guidelines. These guidelines
  provide general directions for designing a TV app as well as some specific implementation
  instructions.
</p>

<p>
  Apps for TV devices must meet some specific requirements for usability. Only apps that meet the
  following usability criteria will qualify as an TV app on Google Play:
</p>

<ul>
  <li>App functionality must be navigable using 5-way D-pad controls, unless the app requires a
    game controller.
    (<a href="{@docRoot}preview/tv/ui/navigation.html#d-pad-navigation">details</a>)
    <ul>
      <li>If the app requires a game controller, all functionality must be navigable using
        standard Android game controller keys.
        (<a href="{@docRoot}training/game-controllers/controller-input.html#button">details</a>)
      </li>
    </ul>
  </li>

  <li>Layouts used on TV devices must be designed for landscape orientation.
    (<a href="{@docRoot}preview/tv/ui/layouts.html#structure">details</a>)</li>

  <li>Core text used in TV layouts must be at least 16sp in size and all text must be at least
    12sp.</li>

  <li>Text and functionality should be placed inside an overscan margin of at least 27dp from the
    top and bottom edges and 48dp from the left and right edges of the TV screen.
   (<a href="{@docRoot}preview/tv/ui/layouts.html#overscan">details</a>)</li>

  <li>Apps that uses full-screen, non-video ads, must ensure that the ads are immediately
    dismissible by the user with D-pad controls.</li>

  <li>Apps must not depend on having a web browser app on TV devices. Apps can use <a href=
    "http://developer.android.com/reference/android/webkit/WebView.html">WebView components</a> to
    show web content where needed.</li>

  <li>Apps that uses clickable, non-full screen, non-video ads must ensure that the ads do not link
    to a web URL. These ads must also not link to an app or game that is not available on TV devices
    and, therefore, not available in the Google Play store for TV.</li>

  <li>Apps must display correctly on the Android TV launcher by doing the following:
    <ul>
      <li>Include in the app manifest an intent filter of type {@code ACTION_MAIN} with an intent
        category {@code CATEGORY_LEANBACK_LAUNCHER}.
        (<a href="{@docRoot}preview/tv/start/index.html#tv-activity">details</a>)
      </li>

      <li>Provide a 320x180px banner image resource and declare it in the manifest.</li>

      <li>If the app is a game, it must set the {@code isGame} property to {@code true} in the
        manifest. (<a href="{@docRoot}preview/tv/games/index.html#manifest">details</a>)
      </li>
    </ul>
  </li>

  <li>App must not partially obscure other apps. Apps must fill the entire screen and have a
    non-transparent background.
  </li>

  <li>Music and audio apps that continue to play sound after a user has left the app must provide
    a <strong>Now Playing</strong> card on the home screen recommendation row so users can easily
    control playback. Developers should use the {@code android.media.session.MediaSession} API
    to enable this card and link playback to a specific activity.
  </li>

  <li>Media apps that play video or music content must toggle between play and pause of media
    playback when a <a href="{@docRoot}reference/android/view/KeyEvent.html#KEYCODE_MEDIA_PLAY_PAUSE">
    play or pause key event</a> is sent during playback.
  </li>

  <li>Games that use a gamepad in order to play must define gamepad use in the app manifest.
    (<a href="{@docRoot}preview/tv/games/index.html#gamepad">details</a>)
  </li>

  <li>Games that provide in-game instructions for game controllers must show a generic controller
    layout that does not include any branding. You can download generic controller artwork from
    here: <a href="http://storage.googleapis.com/androiddevelopers/design/android_tv_gamepad_template-2014-10.zip">
    android_tv_gamepad_template_2014-10.zip</a>.
  </li>
</ul>


<h2 id="faq">Frequently Asked Questions</h2>

<p>
  <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>
  <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>
  <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 L.
</p>
 No newline at end of file
+6 −0
Original line number Diff line number Diff line
@@ -24,6 +24,12 @@ page.tags="leanback","recyclerview","launcher"
<p>This guide describes how to prepare your development environment and projects for building
  TV apps, including updating your existing app to run on TV devices.</p>

<p class="note">
  <strong>Important:</strong> There are specific requirements your app must meet in order to
  qualify as an Android TV app on Google Play. For more information, see the requirements listed
  in <a href="{@docRoot}preview/tv/publish/index.html">Publishing TV Apps</a>.
</p>


<h2 id="prerequisites">Prerequisites</h2>