androidandroid-manifestmultiple-apk

Google Play showing Nexus,Samsung and Motorola and some other devices as unsupported


I tried uploading Multiple Apk in google play store, but it shows around 3000 devices in the unsupported list which include All Nexus and Moto Devices, and few Samsung high end devices.

Please suggest me some options to include these devices. Thanks in Advance.

Moto devices: enter image description here

EDIT:

Samsung Devices: enter image description here

Nexus Devices: enter image description here

Phone Manifest:

...
<compatible-screens>
    <screen
        android:screenDensity="ldpi"
        android:screenSize="small" />
    <screen
        android:screenDensity="mdpi"
        android:screenSize="small" />
    <screen
        android:screenDensity="mdpi"
        android:screenSize="normal" />
    <screen
        android:screenDensity="hdpi"
        android:screenSize="normal" />
    <screen
        android:screenDensity="mdpi"
        android:screenSize="large" />
    <screen
        android:screenDensity="hdpi"
        android:screenSize="large" />
</compatible-screens>

<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:resizeable="true"
    android:smallScreens="true"
    android:xlargeScreens="false" />
...

Tablet Manifest:

...
<compatible-screens>
    <screen
        android:screenDensity="xhdpi"
        android:screenSize="large" />
    <screen
        android:screenDensity="xhdpi"
        android:screenSize="xlarge" />
    <screen
        android:screenDensity="hdpi"
        android:screenSize="xlarge" />
    <screen
        android:screenDensity="mdpi"
        android:screenSize="xlarge" />
</compatible-screens>

<supports-screens
    android:anyDensity="true"
    android:largeScreens="false"
    android:normalScreens="false"
    android:resizeable="false"
    android:smallScreens="false"
    android:xlargeScreens="true" />
...

Solution

  • Remove all section related to devices support in phone APK and add versionCode say x. By default, Phone APK will give support to all the devices. Now, give the devices support details only in your tablet APK while the versionCode of tablet APK must be x+1.

    1. Change both the manifests as given below.

    2. On play store, go to APK section of your app. Switch to Advanced mode.

    3. Upload the phone APK (with lower versionCode say x) first and then upload the tablet APK (with higher versionCode say x+1).

    4. Make sure that both these APKs that you uploaded are in Activated state.

    5. Publish the app, and now you are happy to go.

    Phone Manifest:

    ...
    android:versionCode="x"
    ...
    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="21" />
    <!--
    <compatible-screens>
        <screen
            android:screenDensity="ldpi"
            android:screenSize="small" />
        <screen
            android:screenDensity="mdpi"
            android:screenSize="small" />
        <screen
            android:screenDensity="mdpi"
            android:screenSize="normal" />
        <screen
            android:screenDensity="hdpi"
            android:screenSize="normal" />
        <screen
            android:screenDensity="mdpi"
            android:screenSize="large" />
        <screen
            android:screenDensity="hdpi"
            android:screenSize="large" />
    </compatible-screens>
    
    <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:resizeable="true"
        android:smallScreens="true"
        android:xlargeScreens="false" />
    -->
    

    For supporting the tablet only devices, you should refer this section in android developer site.

    Tablet Manifest:

    ...
    android:versionCode="x+1"
    ...
     <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="21" />
    
    <!--
    <compatible-screens>
        <screen
            android:screenDensity="xhdpi"
            android:screenSize="large" />
        <screen
            android:screenDensity="xhdpi"
            android:screenSize="xlarge" />
        <screen
            android:screenDensity="hdpi"
            android:screenSize="xlarge" />
        <screen
            android:screenDensity="mdpi"
            android:screenSize="xlarge" />
    </compatible-screens>
    
    <supports-screens
        android:anyDensity="true"
        android:largeScreens="false"
        android:normalScreens="false"
        android:resizeable="false"
        android:smallScreens="false"
        android:xlargeScreens="true" />
    -->
    <supports-screens
        android:largeScreens="true"
        android:normalScreens="false"
        android:requiresSmallestWidthDp="600"
        android:smallScreens="false"
        android:xlargeScreens="true" />
    

    I hope this answer might help you.