We have an android application, manifest of which sets the following configurations:
minsdkVersion = "4"
<supports-screens
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="false" />
However, when a user with Motorola XOOM device browses Android Market he is not displayed our application.
Why is this so?
I had the same issue. Along with including android:xlargeScreens="true"
I found this to be the fix.
The Android Market treats as though requesting a permission like CALL_PHONE also requests:
<uses-feature
android:name="android.hardware.telephony"
/>
The XOOM does not have telephony —
the first Android Market-compliant
device with that limitation. While it
can have a data plan, it has no voice
or SMS capability, and so it is
treated as not having
android.hardware.telephony. But, if
you request permissions like
CALL_PHONE, the Android Market by
default will assume you need
android.hardware.telephony. As a
result, you will be filtered out of
the Market for the XOOM.
The solution is simple: for any
hardware features that might be
implied by permissions but that you do
not absolutely need, manually add the
appropriate element to
your manifest with
android:required="false":
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
From this blog:
The CommonsBlog - XOOM, Permissions, and the Android Market
Do you have copy protection turned on?
I had a similar problem, some Xooms could see my app, but some couldn't.
Apparently, turning on copy protection (in the post-upload app settings) can block some devices from viewing/downloading the app. If that's what's causing the problem, simply turning off copy protection will fix the issue. Google recommends you use the licensing service instead to protect your apps: http://developer.android.com/guide/publishing/licensing.html
The XOOM has an extra large screen so you need android:xlargeScreens="true"
in your manifest.
Edit: Seems like this defaults to true. See my comment below.
Remember!
<uses-sdk android:minSdkVersion="X" android:targetSdkVersion="11" />
targetSdkVersion will take care of you ;)
Do you request any telephony permissions in your app, e.g. READ_SMS
or CALL_PHONE
? If so, then the Market will infer that telephony support is required, which means it won't be available for the Xoom.
If this is the case, then you need to update your AndroidManifest.xml to make the telephony features optional:
<uses-feature android:name="android.hardware.telephony" android:required="false"/>
You'll also need to make sure your app copes gracefully when the telephony features aren't present!
See my answer here for more detail on how to check what devices the Market is offering your app on.
The android:xlargeScreens="true"
permission is not required, unless you've explicitly included the [supports-screens][2]
in your AndroidManifest.xml (which you shouldn't, as the default will make it available on all screen sizes).