我只是有一个类似的问题。我想发布一个只能在智能手机上下载的应用程序。稍后我将介绍平板电脑支持。所以我需要一个过滤器,让我的应用程序仅适用于智能手机。该应用程序无法安装在 Nexus 5 或 Galaxy S5 上。
为了解决这个问题,我按照开发文档(屏幕分发)中的建议进行了操作(另请参阅 stackoverflow 上的答案):
<manifest ... >
<compatible-screens>
<!-- all small size screens -->
<screen android:screenSize="small" android:screenDensity="ldpi" />
<screen android:screenSize="small" android:screenDensity="mdpi" />
<screen android:screenSize="small" android:screenDensity="hdpi" />
<screen android:screenSize="small" android:screenDensity="xhdpi" />
<!-- all normal size screens -->
<screen android:screenSize="normal" android:screenDensity="ldpi" />
<screen android:screenSize="normal" android:screenDensity="mdpi" />
<screen android:screenSize="normal" android:screenDensity="hdpi" />
<screen android:screenSize="normal" android:screenDensity="xhdpi" />
</compatible-screens>
...
<application ... >
...
<application>
</manifest>
但这还不够。不支持某些 xxhdpi 设备。您可能想复制/粘贴最后一行并添加“xxhdpi”,但 tt 不起作用(我刚刚测试过,APK 签名失败并出现以下错误:“错误 APT0000:不允许字符串类型(在 'screenDensity'值为'xxhdpi')") ;)
要支持 xxhdpi,请查看开发文档(兼容屏幕元素)。
注意:此属性当前不接受 xxhdpi 作为有效值,但您可以指定 480 作为值,这是 xhdpi 屏幕的近似阈值。
因此,您需要添加480,而不是 xxhdpi,如下所示:
<screen android:screenSize="small" android:screenDensity="480" />
<screen android:screenSize="normal" android:screenDensity="480" />
现在,回到不支持的Nexus 5和Galaxy S5 。让我们检查一些规格:
LG Nexus 5:http ://www.gsmarena.com/lg_nexus_5-5705.php
- 屏幕尺寸为 4.95 英寸。
- 密度:445 ppi
三星 Galaxy S5:http ://www.gsmarena.com/samsung_galaxy_s5-6033.php
所以根据开发文档(屏幕支持):
图 1. Android 如何将实际尺寸和密度粗略映射到通用尺寸和密度的图示(数字不准确)。
正如您在上图中所见,4 到 5 英寸之间有点“棘手”(如果我错了请评论),因为屏幕可以是“正常”或“大”。所以基本上为了安全起见,我不得不添加对大的支持:
<screen android:screenSize="large" android:screenDensity="ldpi" />
<screen android:screenSize="large" android:screenDensity="mdpi" />
<screen android:screenSize="large" android:screenDensity="hdpi" />
<screen android:screenSize="large" android:screenDensity="xhdpi" />
<screen android:screenSize="large" android:screenDensity="480" />
我刚刚在 Play 商店进行了测试,我的同事拥有 Nexus 5 能够下载该应用程序。像这样,无论如何,一些小型平板电脑或平板电脑(屏幕尺寸在 4 到 7 英寸之间)仍然可以下载我的应用程序,但至少最新的 xlarge 屏幕(大于 7 英寸)平板电脑不会。就我而言,这是可以接受的……希望这会有所帮助……</p>
…如果我对 4 到 5 英寸之间的区域有误,请发表评论,这对我来说不是很清楚。哪个是正常的还是大的……</p>