Question

I can't install my app from Google Play on Nexus 7. It tells me that the device is not supported and in the unsupported devices I see a lot of tablets, even though I can install directly the .apk on the device and it works at native size.

The minSdkVersion is 7, I've tried with targetSdkVersion 8 and 17 and the result is the same.

What I'm doing wrong?

Is it because of any uses-permission?

UPDATE:The least of all permissions:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Was it helpful?

Solution

It is typically due to use permissions in the manifest that aren't declared as not required. (i.e. android:required="false"). In my personal experience, permissions involving cameras are normally the culprit

More information straight from the developer page:

If you request a hardware-related permission — CAMERA, for example — Google Play assumes that your application requires the underlying hardware feature and filters the application from devices that do not offer it.

To control filtering, always explicitly declare hardware features in elements, rather than relying on Google Play to "discover" the requirements in elements. Then, if you want to disable filtering for a particular feature, you can add a android:required="false" attribute to the declaration.

OTHER TIPS

I had to add some <uses-feature>

IMPORTANT: everything must be lower case. Initially I've tried with upper case, as in class declaration, but it doesn't work

<uses-feature android:name="android.hardware.telephony" android:required="false" />
<uses-feature android:name="android.hardware.location" android:required="false" />
<uses-feature android:name="android.hardware.location.network" android:required="false" />
<uses-feature android:name="android.hardware.location.gps" android:required="false" />

android.hardware.telephony is enough to make it work on Nexus 7/10 and all those tablets.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top