如何在AndroidManifest.xml中指定禁止在小于4.7英寸的设备上安装?
我有一款在7英寸平板电脑上感觉最好的游戏,在10英寸平板电脑和5英寸三星笔记本大小的设备上感觉可以接受。在Nexus4或S3大小的手机上,它甚至还可以说是相当有趣的。在任何更小的东西上玩一点也不好玩。在这种情况下,如何编写清单,使其能够安装在从4.7英寸设备到10英寸平板电脑的任何设备上,同时又受到小型手机的限制 编辑 退一步说,这个问题的原因是因为我发现Android开发者网站上的文档令人难以置信地困惑和冲突。让我们举一些例子来说明混淆的来源: 让我们以两个不同的设备为例 机器人3如何在AndroidManifest.xml中指定禁止在小于4.7英寸的设备上安装?,android,android-manifest,google-play,screen-size,Android,Android Manifest,Google Play,Screen Size,我有一款在7英寸平板电脑上感觉最好的游戏,在10英寸平板电脑和5英寸三星笔记本大小的设备上感觉可以接受。在Nexus4或S3大小的手机上,它甚至还可以说是相当有趣的。在任何更小的东西上玩一点也不好玩。在这种情况下,如何编写清单,使其能够安装在从4.7英寸设备到10英寸平板电脑的任何设备上,同时又受到小型手机的限制 编辑 退一步说,这个问题的原因是因为我发现Android开发者网站上的文档令人难以置信地困惑和冲突。让我们举一些例子来说明混淆的来源: 让我们以两个不同的设备为例 机器人3 4英寸显
- 4英寸显示器
- 540x960像素
- 275 ppi
- 在4英寸时,它可能位于“大”的裸露边缘,但可能为中等
- 在540x960时,它在“大”的最小值范围内
- 在275 ppi时,它声称是一个hdpi屏幕
- 4.7英寸显示器
- 768x1280像素
- 318 ppi
- 此屏幕的物理尺寸正好位于中型和大型屏幕的边界上
- 像素尺寸表明它可能是xlarge
- ppi指示它是一个xhdpi设备
但是,如果一个人想同时支持旧手机(假设屏幕大小以英寸为单位)和新平板电脑,或者如果它被隐藏在森林深处,那么在它的位置上使用什么,就没有明确的指导。有人能清楚地说明cretieria真正重要的是什么,以及为什么一个给定的设备会适合给定的过滤器或失败吗?我认为基于谷歌文档,这将满足您的要求(5英寸或更小):
或使用此(4.7英寸及更小):
我推荐第二种方法,因为它更准确
536是如何计算的?根据我们的数据(高度x宽度):
- xlarge屏幕至少为960dp x 720dp
- 大屏幕至少为640dp x 480dp
- 正常屏幕至少为470dp x 320dp
- 小屏幕至少为426dp x 320dp
android:requiresSmallestWidthDp
最接近您的目标。由于这是以密度无关像素测量的,并且密度无关像素应该是1/160英寸,因此可以通过乘以160得出任意英寸数的dp
值
但是,根据您的要求,这不是指对角线。这是指最短边的宽度(例如,纵向宽度、横向高度)
因此,如果你能用最小宽度来重新表达你的愿望,请使用android:requiresMallestWidthDP,并祈祷当提到Google Play是否尊重它时,文档会一团糟。当您将应用程序上传到Play Store开发者控制台并查看哪些设备支持它时,您将能够确定——找到一些您知道的设备太小(但应运行应用程序),并查看是否已对其进行过滤
如果android:requiresMallestWidthDP的文档是正确的,并且Play Store出于过滤目的(grrrrr…)忽略了它,那么您
<compatible-screens>
<screen android:screenSize="large" android:screenDensity="ldpi" />
<screen android:screenSize="large" android:screenDensity="mdpi" />
<screen android:screenSize="xlarge" android:screenDensity="ldpi" />
<screen android:screenSize="xlarge" android:screenDensity="mdpi" />
<screen android:screenSize="xlarge" android:screenDensity="hdpi" />
<screen android:screenSize="xlarge" android:screenDensity="xhdpi" />
</compatible-screens>
<supports-screens android:smallScreens="false"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:requiresSmallestWidthDp="536" />