【问题标题】:filter out all tablets on google-play ( no screen compatibility mode)过滤掉 google-play 上的所有平板电脑(无屏幕兼容模式)
【发布时间】:2016-01-27 19:47:16
【问题描述】:

关于文档 (http://developer.android.com/guide/practices/screens-distribution.html#FilteringHandsetApps) 你应该这样做:

<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>

但这也会过滤掉手机,例如xxhdpi - 很遗憾,您无法添加 xxhdpi,因为它不能作为值使用:http://developer.android.com/guide/topics/manifest/compatible-screens-element.html 支持屏幕也不是选项:

注意:如果您使用反向元素 场景(当您的应用程序与大屏幕不兼容时) 并将较大的屏幕尺寸属性设置为“false”,然后设置为外部 Google Play 等服务不应用过滤。你的申请 仍可用于更大的屏幕,但当它运行时,它将 不调整大小以适应屏幕。相反,系统将模拟 手机屏幕尺寸(约 320dp x 480dp;请参阅屏幕兼容性 模式了解更多信息)。如果您想阻止您的申请 从在更大的屏幕上下载,使用 , as 上一节中讨论过的关于声明一个应用程序仅适用于 手机。

另一种选择是过滤电话功能 - 但有些平板电脑具有电话功能。有什么方法可以做到这一点吗?

【问题讨论】:

  • 具有电话功能的平板电脑和具有大屏幕手机的平板电脑有什么区别?
  • 边界是流动的 - 但我知道应用 atm 在 7''+ 上看起来很糟糕 - 理想情况下,我想过滤掉 >7'' 的所有内容,直到为此优化布局

标签: android google-play


【解决方案1】:

这应该可行:

<compatible-screens>
    <!-- all small size screens -->
    ...
    <!-- support for xxhdpi densities -->
    <screen android:screenSize="small" android:screenDensity="480" />
    <!-- all normal size screens -->
    ...
    <!-- support for xxhdpi densities -->
    <screen android:screenSize="normal" android:screenDensity="480" />
</compatible-screens>

根据the documentation itself,您只需将原始 int 值放入 xxhdpi 屏幕:

注意:此属性目前不接受 xxhdpi 作为有效 值,但您可以指定 480 作为值,即 xhdpi 屏幕的近似阈值。

【讨论】:

    【解决方案2】:

    你试过了吗?

    <supports-screens android:largestWidthLimitDp="500"/>
    

    【讨论】:

    • no - 如文档所述: android:largestWidthLimitDp 此属性允许您通过指定应用程序设计的最大“最小屏幕宽度”来强制启用屏幕兼容模式。如果设备可用屏幕的最小边大于此处的值,则应用程序以屏幕兼容模式运行,用户无法禁用它。而且我不想要兼容模式
    【解决方案3】:

    我会改为使用此配置,以便您可以包含更多手机:

    <compatible-screens>
        <!-- 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" />
        <screen android:screenSize="small" android:screenDensity="280" />
        <screen android:screenSize="small" android:screenDensity="360" />
        <screen android:screenSize="small" android:screenDensity="420" />
        <screen android:screenSize="small" android:screenDensity="480" />
        <screen android:screenSize="small" android:screenDensity="560" />
        <screen android:screenSize="small" android:screenDensity="640" />
        <!-- 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" />
        <screen android:screenSize="normal" android:screenDensity="280" />
        <screen android:screenSize="normal" android:screenDensity="360" />
        <screen android:screenSize="normal" android:screenDensity="420" />
        <screen android:screenSize="normal" android:screenDensity="560" />
        <screen android:screenSize="normal" android:screenDensity="640" />
    </compatible-screens>
    

    这样您就支持http://developer.android.com/guide/topics/manifest/compatible-screens-element.html 中提到的所有可能的密度,如果您想支持一些最新的手机(例如三星 Galaxy S6),还可以添加 640

    【讨论】:

      【解决方案4】:
         <supports-screens
          android:largeScreens="true"
          android:normalScreens="false"
          android:requiresSmallestWidthDp="600"
          android:smallScreens="false"
          android:xlargeScreens="true" />
      

      它对你有帮助。它的过滤片只有 7 和 10 英寸。试试这个一次

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多