【问题标题】:Play Store ignoring requiresSmallestWidthDp on API 21+Play 商店忽略 API 21+ 上的 requiresSmallestWidthDp
【发布时间】:2017-08-01 20:34:56
【问题描述】:

我想避免通过 Play 商店在非平板设备(宽度小于 600dp 的任何设备)上安装我的应用。

https://developer.android.com/guide/practices/screens-distribution.html#FilteringTabletApps 中所述,我在清单上使用<supports-screens>requiresSmallestWidthDp,但似乎商店忽略此属性(例如,我仍然在Play 管理中心的兼容设备部分)

正如https://developer.android.com/guide/topics/manifest/supports-screens-element.html 所说,我的minSdkVersion 21 不需要其他参数:

如果您正在为 Android 3.2 及更高版本开发应用程序,则应使用这些属性来声明您的屏幕尺寸支持,而不是基于通用屏幕尺寸的属性。

因此使用android:smallScreens="false"应避免,如文档中所述。但是商店会忽略新的/首选参数。


现在该怎么办?我希望该应用程序仅适用于具有requiresSmallestWidthDp=600 的设备,因此我也将支持 Nexus 7。

但是当使用旧参数largeScreens="true" 时,我允许安装在任何大于 480dp 的设备上,这意味着屏幕上的空间更小(实际上我想选择 720dp,但 7" 设备似乎很常见)。

【问题讨论】:

    标签: android google-play


    【解决方案1】:

    对于小型和普通设备,在清单中添加以下行

    <compatible-screens>
            <!-- all small size screens -->
            <screen
                android:screenDensity="ldpi"
                android:screenSize="small" />
            <screen
                android:screenDensity="mdpi"
                android:screenSize="small" />
            <screen
                android:screenDensity="hdpi"
                android:screenSize="small" />
            <screen
                android:screenDensity="xhdpi"
                android:screenSize="small" />
    
            <!-- all normal size screens -->
            <screen
                android:screenDensity="ldpi"
                android:screenSize="normal" />
            <screen
                android:screenDensity="mdpi"
                android:screenSize="normal" />
            <screen
                android:screenDensity="hdpi"
                android:screenSize="normal" />
            <screen
                android:screenDensity="xhdpi"
                android:screenSize="normal" />
        </compatible-screens>
    

    【讨论】:

    • 抱歉,这不符合我的要求。 (A) 正如&lt;compatible-screens&gt; 的文档所说,不应使用它(如果需要,最好使用&lt;supports-screens&gt;)。 (B) 我只想排除 较小的 设备/不排除 较大的 设备 (C) 我需要指定 每个 可能的配置(并更新当遇到新设备时,我什至可能都不知道)
    • 基本上,&lt;supports-screens&gt; 就在那里,这是我想要的,但商店没有(完全)考虑到它。我可以使用android:smallScreens="false" 等过滤非平板设备,但这会将粒度限制为预定义的尺寸(小、大、xlarge 等),并且 large460dp 开头i> 这是主要的无赖(我需要 600dp)
    猜你喜欢
    • 1970-01-01
    • 2023-03-07
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 2013-06-28
    • 2014-10-22
    • 2017-04-26
    相关资源
    最近更新 更多