0

我很难理解如何让我的应用在某些设备上可用,但排除其他设备。我有宏碁 Iconia One 7 B1。屏幕 7",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 支持比第 1 版更少的设备的警告!!! 请帮助我理解我做错了什么?基本上,无论密度如何,我都需要支持所有可能的正常屏幕尺寸;大 MDPI 和 HDPI 以及超大 MDPI。

4

3 回答 3

0

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

通过强制触摸屏,您只消除了少数设备(包括那些运行安卓手机版本的廉价安卓电视盒)

于 2017-09-22T16:21:34.880 回答
0

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

从文档中:

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

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

<supports-screens
    android:smallScreens="false"/>
于 2017-09-22T16:22:50.623 回答
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 平板电脑被认为与他们的应用程序不兼容时,这对他们有所帮助。

于 2017-09-24T18:58:16.347 回答