应用程序在摩托罗拉XOOM平板电脑的Android市场中未显示出来。

11
我们有一个安卓应用程序,其清单设置如下配置:
minsdkVersion = "4"

<supports-screens 
                  android:normalScreens="true"
                  android:largeScreens="true"
                  android:anyDensity="false" />

然而,当使用摩托罗拉XOOM设备浏览Android市场时,我们的应用程序未显示。

这是为什么呢?

5个回答

24
我遇到了同样的问题。除了包含 android:xlargeScreens="true" 之外,我发现以下内容可以解决这个问题。
Android Market会将像CALL_PHONE这样请求权限的应用视为还请求以下内容: <uses-feature android:name="android.hardware.telephony" /> XOOM没有电话功能 - 这是第一款具有此限制的符合Android Market要求的设备。虽然它可以拥有数据计划,但它没有语音或短信功能,因此被视为不具有android.hardware.telephony。
但是,如果您请求像CALL_PHONE这样的权限,则默认情况下Android Market将认为您需要android.hardware.telephony。结果,您将被从XOOM市场中过滤掉。
解决方案很简单:对于任何可能被权限隐含但您绝对不需要的硬件功能,请手动向清单添加适当的元素,并加上android:required="false" : <uses-feature android:name="android.hardware.telephony" android:required="false" /> 引用自这篇博客: The CommonsBlog - XOOM, Permissions, and the Android Market

2
你是否开启了拷贝保护?我之前也遇到过类似的问题,有些Xoom设备可以看到我的应用程序,但有些却不能。显然,在上传后的应用设置中开启拷贝保护可能会阻止一些设备查看/下载应用程序。如果这是问题的原因,只需关闭拷贝保护即可解决问题。谷歌建议您使用许可证服务来保护您的应用程序:http://developer.android.com/guide/publishing/licensing.html

1

记住!

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

targetSdkVersion 会照顾好你的 ;)


1

你的应用程序是否需要请求任何电话权限,例如READ_SMSCALL_PHONE?如果是这样,那么市场将推断需要电话支持,这意味着它将不可用于Xoom。

如果是这种情况,那么您需要更新AndroidManifest.xml文件,使电话功能变为可选:

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

当电话功能不可用时,您还需要确保您的应用程序能够优雅地处理!

有关如何检查市场提供给您的应用程序的设备的更多详细信息,请参见我的答案此处

除非您已明确包含了[supports-screens][2]在AndroidManifest.xml中(您不应该这样做,因为默认情况下将在所有屏幕尺寸上提供),否则不需要使用android:xlargeScreens =“true”权限。


1

XOOM有一个特别大的屏幕,所以您需要在清单文件中添加android:xlargeScreens="true"

编辑:似乎默认情况下为true。请参见下面我的评论。


根据:http://developer.android.com/guide/appendix/market-filters.html 一般情况下,市场认为设备上的平台可以将较小的布局适应较大的屏幕,但不能将较大的布局适应较小的屏幕。 因此,如果一个应用程序仅声明支持“正常”屏幕尺寸,则市场会将该应用程序提供给正常和大屏幕设备,但会过滤掉小屏幕设备。 - Manish Khot
上述内容并不意味着如果设备具有largeScreen="true",那么也支持xlargeScreen,是这样吗? - Manish Khot
@khotmanish提到的文档有点模糊,因为第一句话说“更大”,暗示了large和xlarge,而第二句话只说“large”。 - Jason Hanley
看来我错了。如果 minSdk 或者 targetSdk >= 4,则所有“supports-screens”属性的默认值都为 true。参考:http://developer.android.com/guide/topics/manifest/supports-screens-element.html - Jason Hanley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接