Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google Play <compatible-screens> blocking out Samsung devices when their resolution is changed

Recently we've had issues where users can't download our app from the Google Play store due to the message "Your device isn't compatible with this version", even though the device is listed as compatible on the device manager of the app release and the app used to be compatible.

We found this to only be happening with Samsung devices E.G. S7, S8 and S6 Edge+ when the screen resolution option is changed in the device settings.

Our manifest currently specifies the following screen support. This works for the Galaxy S7 in all screen resolutions but will not work on the S6 Edge with WQHD resolution, the Google Play store says "Your device isn't compatible with this version" until a different resolution is selected.

<!-- just handsets allowed -->
<compatible-screens>
  <screen android:screenSize="small" android:screenDensity="280" />
  <screen android:screenSize="small" android:screenDensity="xhdpi" />
  <screen android:screenSize="small" android:screenDensity="360" />
  <screen android:screenSize="small" android:screenDensity="420" />
  <screen android:screenSize="small" android:screenDensity="xxhdpi" />
  <screen android:screenSize="small" android:screenDensity="560" />
  <screen android:screenSize="small" android:screenDensity="xxxhdpi" />
  
  <screen android:screenSize="normal" android:screenDensity="ldpi" />
  <screen android:screenSize="normal" android:screenDensity="mdpi" />
  <screen android:screenSize="normal" android:screenDensity="hdpi" />
  <screen android:screenSize="normal" android:screenDensity="280" />
  <screen android:screenSize="normal" android:screenDensity="xhdpi" />
  <screen android:screenSize="normal" android:screenDensity="360" />
  <screen android:screenSize="normal" android:screenDensity="420" />
  <screen android:screenSize="normal" android:screenDensity="xxhdpi" />
  <screen android:screenSize="normal" android:screenDensity="xxxhdpi" />
  <screen android:screenSize="normal" android:screenDensity="480" />
  <screen android:screenSize="normal" android:screenDensity="560" />
  <screen android:screenSize="normal" android:screenDensity="640" />
</compatible-screens>

Our app is designed for handsets only and must not be available to tablets until it is ready.

Has anyone else had these issues or know of a fix? We really can't support tablet at the moment, so removing the compatible screens declaration is not an option right now (we tried adding the require telephony tag, but then we'd still be supporting 500 tablets).

like image 567
Jimmy Avatar asked Oct 18 '17 09:10

Jimmy


1 Answers

The fragmentation in android devices is huge, i have seen that some users define <compatible-screens> in their apps, but sometimes when a new device is released with new density or the screen resolution is changed by the users, they can´t download the app from Google Play Store.

I used to set the definition of compatible-screens in my AndroidManifest.xml

<!-- just handsets allowed -->
<compatible-screens>
  ...
  ...
  ...
</compatible-screens>

but at the end to avoid the message "Your device isn't compatible with this version" and filtering from Google Play for certain devices, i have deleted the constraint <compatible-screens> from my AndroidManifest.xml in all my apps.


If you want to exclude only tablets, i used this configuration based on this answer by Mark Murphy.

<compatible-screens>
    <!-- all small size screens -->
    <screen android:screenSize="small" android:screenDensity="ldpi" />
    <screen android:screenSize="small" android:screenDensity="mdpi" />
    <screen android:screenSize="small" android:screenDensity="hdpi" />
    <screen android:screenSize="small" android:screenDensity="xhdpi" />
    <screen android:screenSize="small" android:screenDensity="xxhdpi" />
    <!-- all normal size screens -->
    <screen android:screenSize="normal" android:screenDensity="ldpi" />
    <screen android:screenSize="normal" android:screenDensity="mdpi" />
    <screen android:screenSize="normal" android:screenDensity="hdpi" />
    <screen android:screenSize="normal" android:screenDensity="xhdpi" />
    <screen android:screenSize="normal" android:screenDensity="xxhdpi" />
</compatible-screens>
like image 59
Jorgesys Avatar answered Oct 19 '22 19:10

Jorgesys