4

我只想在平板电脑上运行我的应用程序。所以我在清单文件中声明了以下代码:

<supports-screens 
    android:smallScreens="false"
    android:normalScreens="false"
    android:largeScreens="true"
    android:xlargeScreens="true"
    android:anyDensity="false"
    android:requiresSmallestWidthDp="600"/>

但是当我连接我的三星 Galaxy S2 手机 ( hdpi 480x800) 时,它仍然显示在 Eclipse 的 Android 设备选择器中。

我只想支持 7" 和 10" 平板电脑。我怎样才能做到这一点?

4

2 回答 2

3

你可能想看看这里

您编写的清单限制对于此目的并不完全正确:

用这个:

<supports-screens android:smallScreens="false"
                  android:normalScreens="false"
                  android:largeScreens="false"
                  android:xlargeScreens="true"
                  android:requiresSmallestWidthDp="600" />

这以两种不同的方式描述了您的应用程序的屏幕尺寸支持:

它声明该应用程序不支持屏幕尺寸桶“小”、“正常”和“大”,传统上不支持平板电脑

它声明应用程序需要一个屏幕尺寸,其最小可用区域至少为 600dp 宽

第一种技术适用于运行 Android 3.1 或更早版本的设备,因为这些设备根据通用屏幕尺寸桶声明其尺寸。requiresSmallestWidthDp 属性适用于运行 Android 3.2 及更高版本的设备,它增加了应用程序根据与密度无关的像素的最小数量指定其尺寸要求的能力。在此示例中,应用程序声明了 600dp 的最小宽度要求,这通常意味着 7 英寸或更大的屏幕。

当然,您的尺寸选择可能会有所不同,这取决于您的设计在不同屏幕尺寸上的效果;例如,如果您的设计仅适用于 9 英寸或更大的屏幕,则您可能需要 720dp 的最小宽度。

问题是您必须针对 Android 3.2 或更高版本编译您的应用程序才能使用 requiresSmallestWidthDp 属性。旧版本不理解此属性,会引发编译时错误。最安全的做法是针对与您为 minSdkVersion 设置的 API 级别相匹配的平台开发您的应用程序。当您为构建候选版本做最后准备时,请将构建目标更改为 Android 3.2 并添加 requiresSmallestWidthDp 属性。早于 3.2 的 Android 版本会忽略该 XML 属性,因此不存在运行时失败的风险。

于 2013-07-10T12:28:05.520 回答
0

您无法过滤该应用程序是否安装在手机上(通过 Eclipse,或者如果它是从外部源下载的)。此设置将限制应用程序从 Google Play 市场下载到手机上。

于 2013-10-28T10:22:43.077 回答