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...).