【问题标题】:How to restrict app for tablet in Android?如何在 Android 中限制平板电脑的应用程序?
【发布时间】:2013-01-21 16:06:39
【问题描述】:

我想让我的应用程序只运行不在移动设备中

10 和 7 英寸平板电脑

。但我的应用程序可以在两种平板电脑上运行。请帮帮我

【问题讨论】:

  • 您可以通过在 AndroidManifest 中声明(或排除)元素来实现此目的。请参阅 supports-screenscompatible-screens 清单元素。
  • ii 声明但平板电脑安装没有变化。
  • 感谢兄弟的快速响应
  • 看来我的答案已被删除。多么奇怪。我提供的答案将用户引导到最纯粹的来源,如果他们阅读过答案,他们可以很容易地看到答案。我觉得没有必要通过缺乏上下文和格式的开发指南中的复制和粘贴来扩大它。请恢复。

标签: android google-play tablet


【解决方案1】:

Google 开发人员对此有非常详细的信息,因此请查看此链接:
Distributing to Specific Screens

引用下面的相关部分。

仅限手机:

Declaring an App is Only for Handsets

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

仅限平板电脑:

Declaring an App is Only for Tablets

如果您不希望您的应用在手机上使用(可能是您的应用 真正只有在大屏幕上才有意义)或者你需要时间来优化 它适用于较小的屏幕,可以防止小屏幕设备 使用清单元素下载您的应用。

<manifest ... >
    <supports-screens android:smallScreens="false"
                      android:normalScreens="false"
                      android:largeScreens="true"
                      android:xlargeScreens="true"
                      android:requiresSmallestWidthDp="600" />
    ...
    <application ... >
        ...
    </application>
</manifest>

【讨论】:

  • 请注意 link-only answers 是不鼓励的,所以答案应该是寻找解决方案的终点(与另一个中途停留的参考相比,随着时间的推移往往会变得陈旧)。请考虑在此处添加独立的概要,并保留链接作为参考。
  • +1,此链接实际上比此处的其他答案更有用,因为它帮助我了解何时使用 &lt;supports-screens&gt;&lt;compatible-screens&gt;。我冒昧地在答案中引用了相关示例。
  • Handset 刚刚设置了 normalScreenSize,如果是 5inch 或 6inch 的设备呢?您的意思是 normalScreenSize 仅适用于手机?你不觉得,你应该为 largeScreenSize 设置属性吗?
【解决方案2】:

是的,正如@OceanLife 所说,您应该选择compatible-screenssupports-screens

但我想在这里添加一些东西。

如果你正在使用

<supports-screens android:largeScreens="false" android:normalScreens="true" 
                  android:smallScreens="true" android:xlargeScreens="false" /> 

然后注意官方compatible-screens 文档的内容:

如果您希望您的应用程序仅适用于大型和 xlarge 屏幕设备,该元素允许您 声明你的应用不支持小屏和普通屏 尺寸。 外部服务(例如 Google Play)会过滤您的 相应地应用。您还可以使用 声明系统是否应调整应用程序大小的元素 适用于不同的屏幕尺寸。

所以它会在您将 apk 文件上传到 PlayStore 后生效。直到您不会影响此功能。

另请参阅Filters on Google Play 文档,了解有关 Google Play 如何使用此和其他清单元素过滤应用程序的更多信息。

希望它会有所帮助。

【讨论】:

    【解决方案3】:

    通过使用Uses-Feature,您似乎可以将应用分发限制为仅横向屏幕设备“平板电脑和平板电脑之类的设备”。 这是您在 manifest.xml 中需要的代码:

              <uses-feature android:name="android.hardware.screen.landscape"
                          android:required="true"
              ></uses-feature>
    

    同时使用:

    <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="false"
        android:resizeable="false"
        android:smallScreens="false"
        android:xlargeScreens="true" />
    

    【讨论】:

      【解决方案4】:

      试试这个:

      您应该在您的mainfest 中使用此attribute android:largestWidthLimitDp="输入您想要限制的移动像素值。"

       <supports-screens
          android:anyDensity="true"
          android:largeScreens="true"
          android:normalScreens="true"
          android:resizeable="true"
          android:largestWidthLimitDp="500"
          android:smallScreens="true"
          android:xlargeScreens="false" />
      

      【讨论】:

        【解决方案5】:

        尝试将其添加到您的 android 清单文件中

            <uses-sdk
        android:minSdkVersion="6"
        android:targetSdkVersion="8" />
        
        
        <supports-screens
        android:anyDensity="true"
        android:largeScreens="false"
        android:normalScreens="true"
        android:resizeable="true"
        android:smallScreens="true"
        android:xlargeScreens="false" />
        

        【讨论】:

        • 认为 vabhavsingh 是在相反的 @StarsSky 之后,但想法是一样的。
        • 我想在 jeelybean 版本上使用我的目标 sdk
        • 适用于移动设备的 8 到 16 sdk 版本
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-03
        相关资源
        最近更新 更多