How to publish tablet only Android app with vector drawables

1.2k views Asked by At

I have created Android application which is targeted to tablet devices only. In AndroidManifest I have set following screen support:

<supports-screens
        android:largeScreens="true"
        android:normalScreens="false"
        android:requiresSmallestWidthDp="600"
        android:smallScreens="false"
        android:xlargeScreens="true" />

All graphics in my are vectors so the XML files are put inside the drawable directory directly. Only bitmaps are the launcher icons which looks like this:

res\mipmap-hdpi\ic_launcher.png
res\mipmap-xxhdpi\ic_launcher.png
res\mipmap-xhdpi\ic_launcher.png
res\mipmap-xxxhdpi\ic_launcher.png
res\mipmap-mdpi\ic_launcher.png

In developer console I'm getting a warning that my application is not designed for tablets properly "Use Assets Designed for Tablet Screens".

I have tried adding mipmap-large-mdpi\ic_launcher.png and mipmap-xlarge-mdpi\ic_launcher.png but it had no effect on the warning.

What can I do, to have my app properly designed for tablets?

4

There are 4 answers

2
Uddhav P. Gautam On BEST ANSWER

The same app always works for phone and tablet. Phone and tablet is the same category. But Android TV, wearables are different categories. Google Developer console asks you to provide tablet screen images because tablet requires relatively large images. And these images are bitmaps. so you have to provide bitmap images for the tablet while you publish Apk.

Since VectorAssets look the same in every density (size) screens. But for the bitmaps (eg, ic_launcher.png, Action Bar & Tab Icon, Notification icons), it should be properly designed using Android Studio Asset Manager.

"Use Assets Designed for Tablet Screens" is explicitly stated problems. So, generate all bitmaps using Android Studio Asset Manager.

Eg, to generate (replace your launcher icons): right click on ic_launcher.png" package > new > Image Asset > Change the Asset type to image > and then complete ....

Below image for more clarification.enter image description here

Note: You don't require below lines in AndroidManifest.xml. You can delete whole <supports-screens /> block.

<supports-screens
    android:largeScreens="true"
    android:normalScreens="false"
    android:requiresSmallestWidthDp="600"
    android:smallScreens="false"
    android:xlargeScreens="true" />
0
DrBreakalot On

If you think it does not apply to you, the only solution is to appeal to Google. All other solutions are workarounds that are not necessary.

You can contact Google to appeal an issue with "Designed for tablets" at:
https://support.google.com/googleplay/android-developer/contact/tabletq

4
Avid On

To get your app filtered for just Tablets running ICS in Google-Play you would do this in your AndroidManifest:

<supports-screens
    android:largeScreens="true"
    android:normalScreens="false"
    android:requiresSmallestWidthDp="600"
    android:smallScreens="false"
    android:xlargeScreens="true" />

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="14" />

To get HoneyComb Tablets as well you simply change your minSdk

<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="14" />
0
Shailesh Bandil On
`android:largeScreens="true"` 

to

`android:largeScreens="false"` 

as referred from Declaring an App is Only for Tablets in Here with a Caution: If you use the element for the reverse scenario (when your application is not compatible with larger screens) and set the larger screen size attributes to "false", then external services such as Google Play do not apply filtering. Your application will still be available to larger screens, but when it runs, it will not resize to fit the screen. Instead, the system will emulate a handset screen size (about 320dp x 480dp; see Screen Compatibility Mode for more information). If you want to prevent your application from being downloaded on larger screens, use , as discussed in the previous section about Declaring an App is Only for Handsets.

best wishes to you, HOPE this work for You.