我想发布一个仅在 800x480 或更高屏幕上运行的应用程序。
我不希望拥有 480x320、320x240 等设备的用户从 Android Market 获得它。我该如何配置它?
市场过滤器似乎有答案,但我仍然不明白。
我想发布一个仅在 800x480 或更高屏幕上运行的应用程序。
我不希望拥有 480x320、320x240 等设备的用户从 Android Market 获得它。我该如何配置它?
市场过滤器似乎有答案,但我仍然不明白。
不幸的是,在市场的当前状态下,您无法做到这一点。根据<supports-screens>
参考文档-您只能按“屏幕尺寸”过滤,并且正如您所指出的,WVGA/FWVGA 分辨率是“正常的”。
您可以让您的应用程序使用使用的DisplayMetrics
类以编程方式检测它heightPixels
,widthPixels
但这只是在它被购买/安装之后,这是我假设您想要避免的。
我还没有在 Android 上尝试过,但我认为这应该可行:
layout-480x320
文件夹显示相同的消息并提供退出按钮来退出应用程序。这样,您可以让所有不受支持的屏幕尺寸显示此消息并且没有任何功能。当然,默认layout
文件夹将具有您支持的屏幕尺寸的 UI。这样,在不受支持的设备上,您还可以在消息中说出所有手机都支持的内容。<supports-screens android:anyDensity="false" />
在你的清单文件中。这不会使您的应用在不受支持的分辨率下不可见,但允许使用干净简单的机制与用户进行通信。
用谷歌搜索后,我发现了清单配置:
<compatible-screens>
<screen android:screenSize=["small" | "normal" | "large" | "xlarge"]
android:screenDensity=["ldpi" | "mdpi" | "hdpi" | "xhdpi"] />
...
就像这里描述的那样。
在您的情况下,您可以将下载量减少到以下大小:
WVGA800 (480x800) WVGA854 (480x854) 600x1024
这些屏幕占据了 71% 的市场份额。
向下滚动以下链接以查找市场份额和决议“名称”。
希望这会有所帮助。干杯
更新:这不起作用(见下面的评论)
在您的清单中:
<supports-screens
android:largeScreens="true"
android:normalScreens="false"
android:smallScreens="false"/>
就安卓应用而言,我不确定。好问题。
但是,如果您正在使用 HTML/Javascript 编写浏览器应用程序,则可以使用 screen.width/height、document.documentElement.clientWidth/Height 和其他一些方法的组合来检查 Javascript。如果您真的想这样做,这将是一种阻止您的网站访问低分辨率机器的方法。
您还可以使用媒体查询指定 CSS 以根据屏幕大小做出不同的反应,尽管这不是关于阻塞,而是更多关于适应环境。
Quirksmode 网站上有一篇很好的文章,介绍了在移动浏览器环境中确定屏幕尺寸和其他属性的复杂性。