支持多个屏幕 - <compatible-screens>的使用

时间:2017-09-22 16:10:09

标签: android google-play android-manifest screen-density

我很难理解如何在某些设备上使用我的应用,但排除其他设备。我有Acer Iconia One 7 B1。屏幕7&#34;,800x1280像素和216 ppi密度。在我的应用程序的第一个版本中,Google Play表示它与我的平板电脑不兼容。这是我在开始时的表现:

<compatible-screens>
        <!-- all normal size screens -->
        <screen android:screenDensity="mdpi" android:screenSize="normal" />
        <screen android:screenDensity="hdpi"  android:screenSize="normal" />
        <screen android:screenDensity="xhdpi"  android:screenSize="normal"/>
        <screen android:screenDensity="xxhdpi" android:screenSize="normal"/>
        <!-- mdpi and hdpi large size screens -->
        <screen android:screenDensity="mdpi"  android:screenSize="large" />
        <screen android:screenDensity="hdpi"  android:screenSize="large" />
        <!-- mdpi x-large size screens -->
        <screen android:screenDensity="mdpi"  android:screenSize="xlarge" />
    </compatible-screens>

    <uses-sdk
        android:minSdkVersion="19"
        android:targetSdkVersion="25"
        />

经过研究,我发现我的平板电脑具有tvdpi密度,因此我在清单中添加了更多行,包括所有正常尺寸的屏幕:

<screen   android:screenSize="normal"  android:screenDensity="213"/>
<screen   android:screenSize="normal"  android:screenDensity="420"/>
<screen   android:screenSize="normal"  android:screenDensity="560"/>
<screen   android:screenSize="normal"  android:screenDensity="xxxhdpi"/>
<!-- to exclude TVs -->
      <uses-feature android:name="android.hardware.touchscreen"   
                    android:required="true"/>

当我上传我的应用的第2版时,Google控制台向我显示警告,即尽管我添加了更多兼容的屏幕,但更新后的apk支持的LESS设备比版本1还少! 请帮我理解我做错了什么?基本上,我需要支持所有可能的正常屏幕尺寸,无论密度如何;大型MDPI和HDPI以及超大型MDPI。

3 个答案:

答案 0 :(得分:0)

您排除电视的代码是我猜测的罪魁祸首,只有使用Leanback Intent库(默认情况下禁用)才能支持电视应用。

通过强制触摸屏你只消除了一些设备(包括那些运行Android手机版的廉价Android电视盒)

答案 1 :(得分:0)

听起来你根本不应该使用<compatible-screens>

来自文档:

  

警告:通常,您不应使用此清单元素。使用此元素可以显着减少应用程序的潜在用户群,如果用户的设备具有未列出的屏幕配置,则不允许用户安装应用程序。当应用程序绝对不适用于特定的屏幕配置时,您应该仅将其用作最后的手段。

你说&#34;无论密度如何,我都需要支持所有可能的正常屏幕尺寸。如果这意味着您必须排除 small屏幕尺寸,则可以使用<supports-screens>元素。像

这样的东西
<supports-screens
    android:smallScreens="false"/>

答案 2 :(得分:0)

经过两天的调查(对于我这么长时间的耻辱),我调查了Android Studio中的AVD经理,发现与我的Acer Iconia具有相同规格的Nexus 7被认为是大型的, 不正常。 一旦我改变了

<screen   android:screenSize="normal"  android:screenDensity="213"/>

为:

<screen   android:screenSize="large"  android:screenDensity="213"/>

并将新APK上传到Play商店,我的平板电脑终于与该应用兼容了。我希望有一天,当他们无法弄清楚为什么他们的tvdpi平板电脑被认为与他们的应用程序不兼容时,这有助于某人。