4

I've a Nexus 6 (1440 x 2560 pixels (~493 ppi pixel density)) and a LG G3 (1440 x 2560 pixels (~538 ppi pixel density)) and this manifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="..."
          android:installLocation="preferExternal"
          android:versionCode="..."
          android:versionName="...">

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

    <uses-feature
            android:glEsVersion="0x00020000"
            android:required="true"/>

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

    <uses-feature
            android:name="android.hardware.camera"
            android:required="true"/>

    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

    <!--GCM-->
    <permission android:name="...permission.C2D_MESSAGE" android:protectionLevel="signature"/>
    <uses-permission android:name="...permission.C2D_MESSAGE"/>
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>

    <!-- =========== Screen Types =========== -->
    <supports-screens android:requiresSmallestWidthDp="400"/>
    <compatible-screens>
        <!-- all small size screens -->
        <screen
                android:screenDensity="mdpi"
                android:screenSize="small"/>
        <screen
                android:screenDensity="hdpi"
                android:screenSize="small"/>
        <screen
                android:screenDensity="xhdpi"
                android:screenSize="small"/>
        <screen
                android:screenDensity="480"
                android:screenSize="small"/>
        <screen
                android:screenDensity="640"
                android:screenSize="small"/>

        <!-- all normal size screens -->
        <screen
                android:screenDensity="mdpi"
                android:screenSize="normal"/>
        <screen
                android:screenDensity="hdpi"
                android:screenSize="normal"/>
        <screen
                android:screenDensity="xhdpi"
                android:screenSize="normal"/>
        <screen
                android:screenDensity="480"
                android:screenSize="normal"/>
        <screen
                android:screenDensity="640"
                android:screenSize="normal"/>

        <!-- all large size screens -->
        <screen
                android:screenDensity="mdpi"
                android:screenSize="large"/>
        <screen
                android:screenDensity="hdpi"
                android:screenSize="large"/>
        <screen
                android:screenDensity="xhdpi"
                android:screenSize="large"/>
        <screen
                android:screenDensity="480"
                android:screenSize="large"/>
        <screen
                android:screenDensity="640"
                android:screenSize="large"/>
    </compatible-screens>

The LG G3 can download the app but the Nexus 6 can't. What am I missing here?
Thanks.

EDIT: Haresh Chhelana answer is right although this is more hack rather a solution. I think Google should change the supports-screens not just to enable screen compatibility mode (pretty useless in my opinion) but to exclude some devices. It's more logical something like:

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

Instead of specify all possible combinations inside compatible-screens, that's why errors like this happen (which works when we just want Tablets so it should work too just for handsets but it doesn't...).

GuilhE
  • 11,591
  • 16
  • 75
  • 116

1 Answers1

2

Tryto add this screen support :

<screen
    android:screenDensity="560"
    android:screenSize="normal" />

Ref. : What is the right screen size and density configuration of Nexus 6?

Community
  • 1
  • 1
Haresh Chhelana
  • 24,720
  • 5
  • 57
  • 67
  • I guess Nexus 6 it's screenSize="large" and since it's between 480 and 640 should be accepted. Why normal at 560 should work? Thanks! – GuilhE May 29 '15 at 09:46
  • Your answer is correct, it solves this issue but it's more a hack rather a solution. I've updated my question. – GuilhE May 30 '15 at 14:35