1

I know there is one topic has already talked about this: Here

<manifest ... >
<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" />
    <screen android:screenSize="small" android:screenDensity="xxxhdpi" />
    <!-- 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" />
    <screen android:screenSize="normal" android:screenDensity="xxxhdpi" />
</compatible-screens>
</manifest>

I have applied the above code to my project but somehow some device still being recognized as tablet:

• Samsung S8+ Android 7.0 ( 2960x1440 6.2')

• Nexus 5X Android 8.0 ( 1920x1080 5.2')

• Google Pixel 2 Android 8.0 ( 1920x1080 5')

The message "your device isn't compatible with this version" is displayed on the app page.

So is there a way to ensure that all mobile phones can download the app not the tablet?

Many thanks

Vietnt134
  • 512
  • 7
  • 19

2 Answers2

3

I think this is the same as this question but my answer there wasn't upvoted or accepted, so it won't let me mark as duplicate. So I'll reproduce my answer here. That answer was about excluding tablets, but limiting to tablets has a similar answer.

Android isn't just phones and tablets.

You should consider why you really want to exclude Tablet support. This is completely your business decision to make, but goes completely against the Android philosophy. There is no clear definition of "phone" or "tablet". What about "phablets"? What about Android TVs? What about Chromebooks? What about Phones docked to computer monitors? What about new devices we haven't even thought about yet?

A helpful way to think about this is "What is it about tablets that means we don't want to target them?"

  • if it is the fact they normally don't make phone calls, then require uses-feature android.hardware.telephony and accept the fact you'll allow tablets that can make phone calls. This will be OK because your business decision is based on the ability to make phone calls.
  • If it is the fact they have large screens, then use screen size as targeting. Ruling out phones with large screens will be ok, because the business reason is large screens. The phones you mention have large screens.

But saying "we don't want to target tablets" without a good technical reason for what it is about tablets you don't want to support is probably a mistake, as there is no technical definition of "tablet" and there are 1000s of weird and wonderful Android devices out there you probably haven't thought about.

Nick Fortescue
  • 13,530
  • 1
  • 31
  • 37
  • 1
    Yes, I use android.hardware.telephony, and now no user complain about this issue anymore, sorry for the late late very late answer... :D – Vietnt134 Dec 26 '19 at 09:50
1

Let's try the following:

<compatible-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="420" />
    <screen android:screenSize="small" android:screenDensity="480" />
    <screen android:screenSize="small" android:screenDensity="560" />
    <screen android:screenSize="small" android:screenDensity="640" />
    <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="420" />
    <screen android:screenSize="normal" android:screenDensity="480" />
    <screen android:screenSize="normal" android:screenDensity="560" />
    <screen android:screenSize="normal" android:screenDensity="640" />
    <screen android:screenSize="large" android:screenDensity="ldpi" />
    <screen android:screenSize="large" android:screenDensity="mdpi" />
    <screen android:screenSize="large" android:screenDensity="hdpi" />
    <screen android:screenSize="large" android:screenDensity="xhdpi" />
    <screen android:screenSize="large" android:screenDensity="420" />
    <screen android:screenSize="large" android:screenDensity="480" />
    <screen android:screenSize="large" android:screenDensity="560" />
    <screen android:screenSize="large" android:screenDensity="640" />
</compatible-screens>

Hope it helps.

Asia
  • 43
  • 6
  • Still 2 device can not download using your code: • Nexus 5X Android 8.0 ( 1920x1080 5.2') • Oneplus 5 Android 7.1.1 ( 1920x1080 5.5') – Vietnt134 Feb 08 '18 at 17:59