Google claim Device Incompatibility on Android TV app - android-studio

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.

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.

Related

android studio can't open the design pattern of navigation file

I'm using the android studio to design the app.
i want to create a navigation file in the app. but when i opened the file, it kept showing loading. the design pattern maybe appear some bugs???
how to solve it?
i don't think this is caused by the bad internet and tend think this is a IDE's error. i'm sure that it worked well in last month's edition.
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="#+id/homepage">
</navigation>
Your navigation XML file is empty so I am not sure what you are expecting to see. The navigation design view is pretty heavy and can sometimes be bugged but it just visualizes the XML, you don't really need it to create your navigation system.
You can try "invalidate cache & restart" and "Clean project" options on Android Studio as they might fix the issue. But you probably should put something in you r XML file first.

How to get chromecast support working with the new androidx libraries

I had the chromecast working following the guide at https://developers.google.com/cast/docs/android_sender/integrate. But recently I upgraded to androidx as that seemed the way to got. This meant that
<item
android:id="#+id/media_route_menu_item"
android:title="#string/media_route_menu_title"
app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
app:showAsAction="always" />
got changed to
<item android:id="#+id/media_route_menu_item"
android:title="#string/media_route_menu_title"
app:actionProviderClass="androidx.mediarouter.app.MediaRouteActionProvider"
app:showAsAction="always"/>
But otherwise, all stays the same for example still CastButtonFactory is used to make the connections. I don't see any button appearing anymore so not sure what is wrong. I still implement AppCompat, have the CastOptions, execute CastContext.getSharedInstance(this). Logging for cast discovery has always been very limited to it is hard to know what is going on.

http://seller.samsungapps.com/ - Choosing a Category?

How can I choose a category when submitting a new app in http://seller.samsungapps.com/
Under the Category menu all I see is "Main Category" or "Galaxy Specials"
When I choose Main Category, then I get no submenu, and it won't let me submit the game
If I choose Galaxy Specials \ Other, it tells me:
The registered binaries do not meet the category conditions for GALAXY Specials. The GALAXY Specials category can be selected only if at least one binary supports GALAXY Specials. You can go to ‘Binary>Advanced Mode>Binary Details’ to check the supported GALAXY Specials options.
So, how can I submit the game?
this answer worked for me.
http://www.feelzdroid.com/2015/05/galaxy-specials-error-samsung-seller-office.html
Its just small change in manifest file.
Content of the link:
Recently Samsung seller office has done some changes,
if you simply upload APK like Google play store it will throw error,
“The registered binaries do not meet the category conditions for GALAXY Specials.
The GALAXY Specials category can be selected
only if at least one binary supports GALAXY Specials.
You can go to ‘Binary > Advanced Mode > Binary Details’
to check the supported GALAXY Specials options.”
There is no option to disable Galaxy specials in seller office,
the simple and easy way to fix this problem is
just add a permission in your manifest file
i.e,
<uses-permission android:name=”com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY”/>
Now export your APK in release mode and upload it in Samsung seller office,
a confirmation message appears, just confirm it.
Now APK will be successfully uploaded to Samsung app store.
If you have implemented one of the Samsung SDK, this line is missing in your AndroidManifest.xml
<uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY"/>
Just put this line in your manifest.xml and everything will be OK. I just published this way.
<uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY"/>
100% works to me.
i had the same problem to upload my app on Samsung apps sellers, but after adding the following permission now it worked.
<uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY"/>

Including a GMail sidebar gadget within an installable Google Marketplace listing

I would like to build an application that I can list on the Google Apps Marketplace so that organization administrators can install it with one-click.
The application interacts with Google through a sidebar in Gmail. I've been able to start testing this with the "Add Gadget by URL" GMail Labs feature, but now I would like to package it in an application that the admins can roll out to all their users at the same time.
Google's documentation for application manifests mentions how to add contextual gadgets, but not sidebar gadgets. Does anyone have experience adding a sidebar gadget within an application manifest?
Example of a sidebar that I'd like to embed:
<Module>
<ModulePrefs height="400" title="Mike's First Sidebar!">
<Require feature="views"/>
<Require feature="dynamic-height"/>
<Require feature="settitle"/>
</ModulePrefs>
<Content type="html" view="home">
<![CDATA[
<h2>Todo:</h2>
<ul>
<li>Create a sidebar gadget</li>
<li>Add it to an application</li>
<li>List the application on the marketplace</li>
</ul>
]]>
</Content>
</Module>
The lack of documentation is simply because that isn't a supported feature.

android + phonegap orientation problem

I am building an android application in phone gap. But when i change the orientation from portrait to landscape, i am getting the application from the beginning and not from where i was in the portrait view. how can i solve this issue ?
Were you using the tutorial?? If so, I apologize for the error. Android WebView by default re-loads the configuration when you change the orientation, and we do specify it in the manifest file:
<activity android:name=".YourAppName"
android:label="#string/app_name" android:configChanges="orientation|keyboardHidden">
The change above will not be required, because PhoneGap already has that. Unfortunately, the tutorial doesn't tell you to copy over the entire Android Manifest over and just specifies the permissions. In my opinion, this setting is critical to to having a working application that doesn't reset the state every time the WebView resizes itself.
This is how to fix this problem in android, when orientation changes, activity gets restarted, OnCreate() method gets called. To avoid this specify this in the manifest file for the Activity
Override the following method in Activity class.
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}

Resources