Take the 2-minute tour ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

I have one "generic" Android tablet, and often when I come to install and app, Google Play says it's incompatible with my device. It happens even on popular apps such as Twitter, Instagram, Evernote, Foursquare and even Google Maps!

I know it works, because if I copy the APK from my Motorola phone onto this tablet and install it manually, it runs fine (at least Instagram and Twitter do).

I'm not trying to make Instagram work on my tablet. I'm trying to find a way to install the apps from the Play Store.

Google Play says apps are incompatible

How and where does Google Play performs a compatibility check on my device? I suspect said check is failing somehow. I want to be able to install apps that will work on my device and stop Google Play preventing me.

share|improve this question
1  
The apps are not blocked because of the country of my device, I know this because when it is blocked because of the country, the message is different i.imgur.com/B69bn.png and it won't even show on Google Play, I have to open the page on my desktop. –  That Brazilian Guy Dec 8 '12 at 19:12
    
Both my Motorola Defy phone and my gerenic Genesis tablet run Android 4 (Cyanogenmod 9 in case of my phone, unknown rom in case of tablet). –  That Brazilian Guy Dec 8 '12 at 19:16
add comment

2 Answers 2

up vote 7 down vote accepted

When developers make apps, they have to specify any hardware/software requirements in a file called the androidmanifest.xml file.

These can be hardware or software requirements, such as if the app needs GPS, or telephony features - or if it will only work on a certain Android version.

When you use Google Play, it sends your device's 'features' to the server, and then filters apps accordingly.

The most likely reason it is deemed incompatible by Google Play is that it is set to require a certain screen resolution - or maybe portrait/landscape mode defaults.

Some tablets have a low resolution, and also tell google play that they cannot go into portrait mode.

It could also be, your tablet being generic, that it does not have the required GPS or sensors that the manifiest file says it needs, and the market is stopping you from installing because of that.

I shall find out what the instagram app needs (look at it manifest), and edit this answer for you.

EDIT:

According to the Instagram manifest, the only 'required' item is the glEs version - minimum 131072. It could also be because of your tablets country/carrier setting.

Twitter needs a minimum of Android 2.1, and may also need a Vibrator, as it uses the vibrate permission.

share|improve this answer
    
No, it is not because of the country of my device, neither the carrier. It has no carrier (no GSM or phone capabilities), and when some app is blocked because of the country, the message displayed is a different one -- i.imgur.com/B69bn.png –  That Brazilian Guy Dec 8 '12 at 19:10
    
@ruda.almeida Just covering all the boundries... –  Liam W Dec 8 '12 at 19:15
    
No problem, I was just providing more data, thanks for your efforts! –  That Brazilian Guy Dec 8 '12 at 19:17
    
@ruda.almeida If an app requests the telephony permission (to send/receive texts), then it will require telephony hardware as well. –  Liam W Dec 10 '12 at 14:29
add comment

I know you don't think it is due to your country HOWEVER I noticed that your screenshot was in a language other than English. I am an android developer so I am sorta familiar with localization. Basically apps have certain locales which "represents a language/country/variant combination. Locales are used to alter the presentation of information such as numbers or dates to suit the conventions in the region they describe" (see this on the Android development site). This caught my eye:

An application's Java code refers to just two strings, text_a and text_b. This application includes a localized resource file (res/values-en/strings.xml) that defines text_a and text_b in English. This application also includes a default resource file (res/values/strings.xml) that includes a definition for text_a, but not for text_b:

This application might compile without a problem. An IDE such as Eclipse will not highlight any errors if a resource is missing. When this application is launched on a device with locale set to English, the application might run without a problem, because res/values-en/strings.xml contains both of the needed text strings. However, the user will see an error message and a Force Close button when this application is launched on a device set to a language other than English. The application will not load.

Notice the part about how the application might compile without a problem but might also show an error message and Force Close if the device has a locale that is not supported by that app. I realize this is not what is happening to you but might relate to your problem because Google Play will see that your device might be set to a locale that the app in question does not support or have a specific set of resources for. Google Play might than hide that app from your device even though it could work fine due to the default resources the developer has presumable written, however Google Play may decide it does not want to risk an angry costumer over a Force Close issue so it might just hide it completely from you. Again, this is just an idea and I realise that you see a different message for incompatibility with your country. Hope this helps.

share|improve this answer
    
Interesting, I had no idea about it (and I suspect a few developers might be unaware too). However both my phone and tablet are set to work on the same language. I know there are a few different system attributes to define language, country, locale etc, I have a few system apps that display it, I'm going to run it and add the info to my question. –  That Brazilian Guy Dec 9 '12 at 3:01
    
Glad I could open a new door for you. You might want to check out the two developer pages I provided because something might pop up there to help you out. –  androidcurious Dec 9 '12 at 3:04
    
Google Play compatibility checks aren't based on locales. Additionally, it's normal practice for the developer to have one locale's resources (such as English) as the default, so in an unsupported locale it will just use the default resources. –  Dan Hulme Dec 14 '13 at 14:00
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.