-1

我在 Google 的 Play 商店中发布了一个应用程序。一切正常,但我的一位客户报告说该应用程序与他的设备不兼容。该设备是运行 Android 2.3.6 的三星 Galaxy Note (GT-N7000)。

<compatible-screens>在 AndroidManifest 中使用以下配置:

<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="480" />
    <!-- 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="480" />
</compatible-screens>

我不包括large屏幕尺寸的原因是因为该应用程序与平板电脑不兼容,并且工作正常(不打算改变这一点)。

奇怪的是我自己有一台 GT-N7000,它运行 Android 4.0.3,并且该应用程序在此设备上兼容。一位同事拥有一台 Note 3,也可以通过 Play 商店安装该应用程序。

Google play 告诉我该应用程序与任何 Galaxy Note 兼容(Note 8 + Note 10.1 除外,因为它们被假定为平板电脑,所以这是理想的)。

游戏商店 GT-N7000

有没有人经历过这样的事情?

4

2 回答 2

1

因为您已经声明它适用于您的 4.3 固件,但它与 2.3.6 不兼容,这表明问题出在固件上。

  • 我相信问题出在包含 xml 文件的布局文件夹中。旧版本的 android(任何低于 3.2 的版本)只能从“layout-small、layout-normal、layout-large 和 layout-xlarge”访问布局。我假设您没有提供或使用这些文件夹来支持旧固件版本,并且很可能使用了诸如“layout-sw600dp 和 layout-sw720dp”之类的文件夹。在您的情况下,我会创建这些布局文件夹以添加对旧固件版本的支持。

    一组四种通用尺寸:small、normal、large 和 xlarge

    注意:从Android 3.2(API 级别 13)开始,这些尺寸组已被弃用,取而代之的是一种基于可用屏幕宽度管理屏幕尺寸的新技术。如果您正在为 Android 3.2 及更高版本进行开发,请参阅为 Android 3.2 声明平板电脑布局以获取更多信息。一组四种广义密度:ldpi(低)、mdpi(中)、hdpi(高)和 xhdpi(超高)

在此处阅读有关支持多个屏幕的更多信息。

  • 使用权重。如果您想使用最少的 xml 文件并使它们尽可能动态化,以便一种布局可以适用于数百种不同的设备和屏幕尺寸,那么 android:weightSum 和 android:layout_weight 肯定会帮助您实现这一目标。

更多关于权重的信息可以在这里找到。

  • 第三件事是研究支持屏幕的使用情况。我将平板电脑视为最小宽度为 600dp 及以上的任何东西。

在您的情况下,我会设置 maximumWidthLimitDp="599" 在这种情况下,任何 dp 高于 599(被定义为平板电脑)的东西都无法在 Play 商店中下载。

原因是 API 4 中引入了支持屏幕,而 api 9 中引入了兼容屏幕,因此它将提供更广泛的固件支持。

您可以在此处参考更多信息:支持屏幕

于 2013-10-01T08:38:33.410 回答
0

我认为 Galaxy Note 在 ICS 之前被认为是“大”的,现在它被认为是“正常的”。

原因:

Galaxy Note 设备为 800x1280 像素,具有 hdpi 密度,因此为 ~533dp x ~583dp 。

屏幕大小的桶是:

  • 超大屏幕至少为 960dp x 720dp

  • 大屏幕至少为 640dp x 480dp

  • 普通屏幕至少为 470dp x 320dp

  • 小屏幕至少为 426dp x 320dp

所以,由于它没有通过“大”的要求,它变成了“正常”的屏幕尺寸。

文档还说它在较旧的android版本上存在问题:

注意:这些最小屏幕尺寸在 Android 3.0 之前没有得到很好的定义,因此您可能会遇到一些设备被错误分类为普通和大屏幕。这些也基于屏幕的物理分辨率,因此可能因设备而异 - 例如,带有系统栏的 1024x720 平板电脑实际上由于系统栏使用它而对应用程序的可用空间要少一些。

于 2014-01-27T22:05:05.357 回答