Search code examples
android-studiogoogle-playandroid-tvgoogle-developer-tools

Google claim Device Incompatibility on Android TV app


We have an app aimed at Android TV and it has been published live but it comes up as not being compatible with any device in the Google Play Store and I cannot find/install it on an Android TV device, I think Google has done something wrong but I'm getting nothing from them other than copy/paste responses.

The only thing they've said is that it doesn't contain the following :

   <uses-feature
        android:name="android.software.leanback"
        android:required="true" /> 

But it clearly does contain this code within the AndroidManifest.xml and in the correct place. I have compared this app to another similar app (which appears and works) and the manifest file is virtually identical.

Furthermore, the app runs fine in the Android TV emulator and to top it all off, within the Play Developer portal for the release, it says it is compatible with a ton of TV devices (including the one I am trying to test it on as a live app)!

I'm really stuck with this as everything seems to be correct, yet they are adamant via their copy/paste emails that the above leanback code is not present.

Here is my complete manifest code :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.myapp">

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

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <application
        android:name=".GetMeRadioApplication"
        android:usesCleartextTraffic="true"
        android:allowBackup="true"
        android:banner="@mipmap/ic_launcher"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".ui.SplashActivity"
            android:banner="@mipmap/ic_launcher"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:logo="@drawable/ic_launcher"
            android:noHistory="true"
            android:screenOrientation="fullSensor">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".ui.home.HomeActivity"
            android:screenOrientation="fullSensor"
            android:theme="@style/HomeCustomTitle">

        </activity>
        <activity
            android:name=".ui.grid.GridActivity"
            android:screenOrientation="fullSensor"
            android:theme="@style/GenreCustomTitle" />

        <activity
            android:name=".ui.search.SearchActivity"
            android:screenOrientation="fullSensor"
            android:theme="@style/CustomTitleBrowseSearch" />

        <activity
            android:name=".ui.player.PlayerActivity"
            android:screenOrientation="fullSensor" />
    </application>

</manifest>

Any ideas or suggestions on how to progress this? Thanks.


Solution

  • The app won't show as available on TV devices until it has passed the manual review process.

    The uses-feature parts of your manifest look correct, but it looks like you're using your app icon as the banner. This won't show up correctly in the ATV launcher, which may be why they're incorrectly calling out the leanback requirement. The banner should be an xhdpi resource with a size of 320 x 180 px. The app name as text must be included in the image. If your app is available in more than one language, you must provide separate versions of the banner with text for each supported language.

    See https://developer.android.com/training/tv/start/start#banner for more info.

    For the screenOrientation on TV, you should generally either leave it undefined or specify landscape. I'm not sure what impact (if any) setting it to full sensor has given that there isn't an accelerometer for the system to rely on.