13

我想发布一个仅在 800x480 或更高屏幕上运行的应用程序。

我不希望拥有 480x320、320x240 等设备的用户从 Android Market 获得它。我该如何配置它?

市场过滤器似乎有答案,但我仍然不明白。

4

5 回答 5

6

不幸的是,在市场的当前状态下,您无法做到这一点。根据<supports-screens> 参考文档-您只能按“屏幕尺寸”过滤,并且正如您所指出的,WVGA/FWVGA 分辨率是“正常的”。

您可以让您的应用程序使用使用的DisplayMetrics类以编程方式检测它heightPixelswidthPixels但这只是在它被购买/安装之后,这是我假设您想要避免的。

于 2010-09-10T17:16:50.467 回答
2

我还没有在 Android 上尝试过,但我认为这应该可行:

  • 使您的应用程序成为试用应用程序,以便免费下载,但一天后不能免费。
  • 现在在您的应用程序中做两件事之一,在应用程序启动时检测屏幕大小并仅显示一条通用消息,说明不支持此屏幕分辨率并显示退出按钮。另一种方法是让layout-480x320文件夹显示相同的消息并提供退出按钮来退出应用程序。这样,您可以让所有不受支持的屏幕尺寸显示此消息并且没有任何功能。当然,默认layout文件夹将具有您支持的屏幕尺寸的 UI。这样,在不受支持的设备上,您还可以在消息中说出所有手机都支持的内容。
  • 不要忘记<supports-screens android:anyDensity="false" />在你的清单文件中。
  • 现在,当用户在不受支持的设备上下载您的应用程序时,他/她将不会因为一天的试用而被收费,并且还会清楚地显示他/她的设备不受支持,并且可以退出并卸载该应用程序。

这不会使您的应用在不受支持的分辨率下不可见,但允许使用干净简单的机制与用户进行通信。

于 2010-09-14T06:29:46.013 回答
1

用谷歌搜索后,我发现了清单配置:

<compatible-screens>
<screen android:screenSize=["small" | "normal" | "large" | "xlarge"]
        android:screenDensity=["ldpi" | "mdpi" | "hdpi" | "xhdpi"] />
...

就像这里描述的那样。

在您的情况下,您可以将下载量减少到以下大小:

WVGA800 (480x800) WVGA854 (480x854) 600x1024

这些屏幕占据了 71% 的市场份额。

向下滚动以下链接以查找市场份额和决议“名称”。

市场份额

向下滚动以查找分辨率名称

希望这会有所帮助。干杯

于 2012-01-07T19:50:34.637 回答
0

更新:这不起作用(见下面的评论)

在您的清单中:

<supports-screens 
     android:largeScreens="true"
     android:normalScreens="false" 
     android:smallScreens="false"/>
于 2010-09-07T04:39:06.430 回答
0

就安卓应用而言,我不确定。好问题。

但是,如果您正在使用 HTML/Javascript 编写浏览器应用程序,则可以使用 screen.width/height、document.documentElement.clientWidth/Height 和其他一些方法的组合来检查 Javascript。如果您真的想这样做,这将是一种阻止您的网站访问低分辨率机器的方法。

您还可以使用媒体查询指定 CSS 以根据屏幕大小做出不同的反应,尽管这不是关于阻塞,而是更多关于适应环境。

Quirksmode 网站上有一篇很好的文章,介绍了在移动浏览器环境中确定屏幕尺寸和其他属性的复杂性。

于 2010-09-15T12:15:34.603 回答