如何跳过或避免清单中的Android API级别?

Mat*_*ros 1 android android-manifest

我们正在编写一个Android应用程序,我们计划在安装了Jelly Bean(API 16)的至少Froyo(API 8)的Android设备上提供,但我们不希望将其提供给API级别12和13现在,它们分别是Honeycomb 3.1和3.2.

基本上,我们只是避开Android平板电脑.有没有办法跳过这些操作系统?带AndroidManifest.xml文件的东西?

COD*_*BOY 5

您不想跳过操作系统:) 在清单中使用<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>
Run Code Online (Sandbox Code Playgroud)

编辑: 澄清为什么你应该使用<supports-screens>,而不是该解决方案.

如果<supports-screens>在应用程序与较大屏幕不兼容时使用该元素并将较大的屏幕尺寸属性设置为"false",则Google Play等外部服务不会应用过滤.您的应用程序仍可用于更大的屏幕,但在运行时,它不会调整大小以适应屏幕.相反,系统将模拟手机屏幕尺寸(约320dp x 480dp).

底线:

如果您想阻止在较大的屏幕上下载您的应用程序,请使用 <compatible-screens>