Google TV

AndroidManifest

This topic describes the application manifest and its impact on the Google Play Store for Google TV. Every Android application has the file AndroidManifest.xml. It contains information that the Android system uses to install, track, and run the application. Some elements in the manifest control whether the application appears in the Google Play Store for Google TV (as well as the Google Play Store on other devices). This topic helps you understand those elements.

The manifest elements in Table 1 have a special importance for Google TV.

Table 1. AndroidManifest elements relevant to Google TV apps
ElementsGoogle TV specific values
<uses-feature> Specifies a single hardware or software feature required by your application. To ensure your application appears in the Google Play Store for Google TV, remove any <uses-feature> elements for features that are not supported on Google TV .

By default, Android framework assumes that every Android application uses the touchscreen feature, but Google TV is a non-touchscreen device. This means that you must explicitly specify that your application does not use the touchscreen feature. You do this by adding the following element to the manifest:

<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>

If you want to limit your application to Google TV, you can add:

<uses-feature android:name="com.google.android.tv" android:required="true"/>
<compatible-screens> Avoid using this element for your all your Android applications. While it has no effect on the Android system itself, it does restrict the visibility of your application in services such as the Google Play Store. You should try to make your application available on all forms of device screens, both Google TV and non-Google TV. The topics you are reading now contain guidelines for doing this, and you can also find guidelines in the topic Supporting Multiple Screens in the Android Developers Guide.

Specifically, Google TV apps should support large screen size among other sizes. If you want to set the minimum screen size for your application, use the <supports-screens> element.

<supports-gl-texture> Check to see that the texture support you specify for mobile devices is also available for Google TV. If it isn't, you may need to make a separate Android package (.apk file) for Google TV.
<supports-screens> If you set the <uses-sdk> element attributes android:minSdkVersion or android:targetSdkVersion to "3" or less, you may need to use the <supports-screen> element.

By default, Android assumes that an application that requires a minimum SDK version 4 or greater or is designed for an SDK version 4 or greater can support all screen sizes, including those offered by Google TV. Applications based on an older SDK version are assumed to support only the Android pre-defined normal screen size. Since Google TV uses the large screen size, applications based on an older SDK version will appear in a small "postage stamp" window.

Since the postage stamp window may not provide the desired user experience, you can either re-build your application to use a higher SDK version, or you can keep the SDK version but revise your code and resources to support large screens. If you do the latter, you must use the <supports-screens> element to override the Android system assumptions. To do this, add <supports-screens android:largeScreens="true"/> to your manifest file. You must also build against Android 1.6 or later, because <supports-screens> was added in Android 1.6.

<uses-configuration> This element specifies your application's basic hardware interface requirements. When you migrate an existing Android application to Google TV, you should ensure any <uses-configuration> elements you use are compatible. For example, if you specify <uses-configuration android:reqTouchScreen="finger"/> in your manifest file, Android detects that you want a touchscreen and won't install your application on a Google TV device. If you don't want this to happen, you may want to use the <uses-feature> element instead, since it has more flexibility.
<uses-permission> <uses-permission android:name="com.google.android.tv.permission.READ_CHANNELS"> requests permission to read the current channel lineup from the Channel Listing Provider. You must specify this element in your (AndroidManifest.xml) if your application reads from the Channel Listing Provider.
<uses-sdk> This element specifies information about the Android SDKs that work with your application. If you are migrating an existing Android application to Google TV, and you have the <uses-sdk> attributes android:minSdkVersion or android:targetSdkVersion set to "3" or less, you should migrate to a more recent SDK version and change the attributes. This will provide better display support for Google TV devices. Please read the preceding notes for the <supports-screen> element to learn more about this.
<activity android:screenOrientation> android:screenOrientation="unspecified" specifies that the system chooses the orientation. This is Android's default setting. You can use "unspecificed" or "landscape" values for your Activity's screen orientation. If you use screenOrientation="portrait", Google TV will display an error. In addition, Google TV may rotate the current layout "sideways" so that it becomes unreadable.

Authentication required

You need to be signed in with Google+ to do that.

Signing you in...

Google Developers needs your permission to do that.