使 Android 应用程序不适用于平板电脑

问题描述 投票:0回答:5

我正在 Play 商店中发布我的应用程序,但我不希望它适用于平板电脑。 我怎样才能实现它?

我不想手动排除 Android 开发者控制台中的每一个平板电脑,但我确实需要我的应用程序只在智能手机上运行。

编辑: 我按照你的建议做了,但结果是这样的:

enter image description here

为了进一步解释:我需要我的应用程序在普通人称为智能手机的设备上运行,而不是在普通人称为平板电脑的设备上运行......例如它必须在“Galaxy Note 2”上运行,但不能在“Galaxy Tab”上运行

已解决感谢@CommonsWare:

我必须在清单中设置以下标签:

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

和:

<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" />
    <!-- all large size screens -->
    <screen android:screenSize="large" android:screenDensity="ldpi" />
    <screen android:screenSize="large" android:screenDensity="mdpi" />
    <screen android:screenSize="large" android:screenDensity="hdpi" />
    <screen android:screenSize="large" android:screenDensity="xhdpi" />
</compatible-screens>

并执行以下操作: 右键单击项目 -> 属性 -> android -> 选择大于 8 的目标

android tablet
5个回答
31
投票

http://developer.android.com/guide/practices/screens-distribution.html#FilteringHansetApps

...您可以使用该元素根据屏幕尺寸和密度的组合来管理应用程序的分发。 Google Play 等外部服务使用此信息对您的应用程序进行过滤,以便只有具有您声明兼容的屏幕配置的设备才能下载您的应用程序。

该页面中的示例

<compatible-screens>
元素:

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

但是,我建议还添加密度为

xxhdpi
的线路,因为此类设备现已发货(Droid DNA、Xperia Z、HTC Butterfly 等)。


更新

首先,关于您的构建错误,如果您阅读<compatible-screens>

元素
的文档,您会注意到它是在API级别9中添加的,并且出于某种奇怪的原因,您的构建目标设置得比该版本更旧.

第二,关于:

我需要我的应用程序在普通人称为智能手机的设备上运行,而不是在普通人称为平板电脑的设备上运行......例如它必须在“Galaxy Note 2”上运行,但不能在“Galaxy Tab”上运行

这是不可能的,因为您对自己的工作没有具体的定义,并且不希望您的应用程序继续发布。

地球上大约有 80 亿“正常人”。欢迎您采访他们每一个人,询问他们对 Galaxy Note 2 的看法。有人会说电话。有人会说平板电脑。有人会说“平板手机”,这没什么用。有些人会把你赶出他们的家,声称你把一些发光的恶魔带到了他们中间(这也没有用,如果他们手头有石头可以扔,可能会很痛苦)。

如果在未来的某个时间点,您对自己所做的事情和不想运送设备的事情有了一个科学的定义,请提出一个新的 StackOverflow 问题。我所说的“科学定义”是指一种可以被所有设备上的所有人普遍应用的算法,以确定您希望您的应用程序做什么和不做什么。

(请注意,我所说的“所有人”,不包括那些可能认为你是恶魔贩子的人)

例如:

  • “我希望在所有具有电话功能的设备上发货,无论屏幕尺寸如何”

  • “我希望在所有屏幕尺寸小于最小边如此多英寸的设备上发货:


7
投票
在清单文件中使用支持屏幕标签是

错误的方法。始终使用 <compatible-screens>

 使您的应用程序无法在平板电脑上使用。

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

注意

如果您使用上述场景的元素 (当您的应用程序不兼容更大的屏幕时)并设置 较大的屏幕尺寸属性为“false”,则外部服务 例如 Google Play 不应用过滤。您的申请将 仍然可以用于更大的屏幕,但是当它运行时,它不会 调整大小以适合屏幕。相反,系统将模拟手机 屏幕尺寸(约 320dp x 480dp;请参阅屏幕兼容模式了解 更多信息)。如果您想防止您的应用程序被 在更大的屏幕上下载,按照

@CommonsWare的建议使用。

使用标签排除您的应用程序在平板电脑上运行。

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

2
投票
对于该线程的新手,请使用

<uses-feature android:name="android.hardware.telephony" required="true"/>
来源(

https://paramsen.github.io/exclude-tablets/


0
投票
这是 2023 年的更新,进行了一些调整。目前,有很多可折叠手机问世,它们被称为平板电脑。这可能就是为什么他们不想在 Play 管理中心上有一个简单的“排除平板电脑”按钮。

我能够包括这些较新的手机,同时仍然排除平板电脑,因为假设手机具有更高的像素密度,而平板电脑通常具有较低的像素密度。今天确实如此,但将来并不能保证,因此希望 Google 尽快以更好的方式解决这个问题。

<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" /> <screen android:screenSize="small" android:screenDensity="xxhdpi" /> <screen android:screenSize="small" android:screenDensity="xxxhdpi" /> <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" /> <!-- 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" /> <screen android:screenSize="normal" android:screenDensity="xxhdpi" /> <screen android:screenSize="normal" android:screenDensity="xxxhdpi" /> <screen android:screenSize="normal" android:screenDensity="360" /> <screen android:screenSize="normal" android:screenDensity="420" /> <screen android:screenSize="normal" android:screenDensity="480" /> <screen android:screenSize="normal" android:screenDensity="560" /> <screen android:screenSize="normal" android:screenDensity="640" /> <!-- phones only with large size screens --> <screen android:screenSize="large" android:screenDensity="xxhdpi" /> <screen android:screenSize="large" android:screenDensity="xxxhdpi" /> <screen android:screenSize="large" android:screenDensity="420" /> <screen android:screenSize="large" android:screenDensity="480" /> <screen android:screenSize="large" android:screenDensity="560" /> <screen android:screenSize="large" android:screenDensity="640" />

    

-3
投票
您可以尝试为 3g 或 4g 服务添加某种检查。这将排除大多数(但可能不是全部)平板电脑。

© www.soinside.com 2019 - 2024. All rights reserved.