我们正在编写一个 Android 应用程序,我们计划在至少安装了 Froyo (API 8) 到 Jelly Bean (API 16) 的 Android 设备上提供该应用程序,但我们不想将其提供给 API 级别 12 和 13现在,分别是 Honeycomb 3.1 和 3.2。
基本上,我们只是避免使用 Android 平板电脑。有没有办法跳过这些操作系统?有AndroidManifest.xml
文件的东西吗?
我们正在编写一个 Android 应用程序,我们计划在至少安装了 Froyo (API 8) 到 Jelly Bean (API 16) 的 Android 设备上提供该应用程序,但我们不想将其提供给 API 级别 12 和 13现在,分别是 Honeycomb 3.1 和 3.2。
基本上,我们只是避免使用 Android 平板电脑。有没有办法跳过这些操作系统?有AndroidManifest.xml
文件的东西吗?
您不想跳过操作系统 :) 在清单中使用< compatible-screens >并限制您支持的内容。
从文档中,
指定应用程序兼容的每个屏幕配置。清单中只允许该元素的一个实例,但它可以包含多个元素。每个元素都指定了与应用程序兼容的特定屏幕尺寸-密度组合。
例子 :
如果您的应用程序仅与小屏幕和普通屏幕兼容,而不管屏幕密度如何,那么您必须指定八种不同的元素,因为每种屏幕尺寸都有四种不同的密度配置。如果您的应用程序仅与小屏幕和普通屏幕兼容,则清单条目如下所示:
<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>
编辑: 澄清为什么你不应该使用这个<supports-screens>
解决方案。
如果您<supports-screens>
在应用程序不兼容大屏幕时使用该元素并将大屏幕尺寸属性设置为“false”,则 Google Play 等外部服务不会应用过滤。您的应用程序仍可用于更大的屏幕,但在运行时,它不会调整大小以适应屏幕。相反,系统将模拟手机屏幕尺寸(大约 320dp x 480dp)。
底线:
如果您想阻止您的应用程序在更大的屏幕上下载,请使用
<compatible-screens>
*可能,对于清单文件中的任何声明都不可能。如果你不想使用它,你必须在编码中检查那个版本。*
如果您想跳过平板电脑的应用程序,您可以在 Manifest 文件中将 largeScreenSupport 和 extraLargeScreenSupport 设置为 false。
<supports-screens android:largeScreens="false"
android:xlargeScreens="false"
/>
我有一个类似的查询,这对我有用:
Google Play 允许您发布两个具有不同 SDK 范围的 APK。
发布时,您的 APK 的所有统计信息都会合并。
所以我说如果你必须排除 API Level 12 和 13 你可以
制作一个范围为 min(1) max(11) 的 APK
制作范围为 min(14) [自动表示 14 或更高] 的另一个 APK。