Application does not show up in Android Market for

2019-02-12 08:58发布

问题:

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?

回答1:

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



回答2:

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



回答3:

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.



回答4:

Remember!

<uses-sdk android:minSdkVersion="X" android:targetSdkVersion="11" />

targetSdkVersion will take care of you ;)



回答5:

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).