Ограничить установку приложения на устройствах с плотностью экрана hdpi или ниже - PullRequest
0 голосов
/ 05 марта 2019

Я занимаюсь разработкой приложения для Android, предназначенного только для устройств с высокой плотностью экрана.я хочу ограничить свое приложение на устройствах с 1,5 или менее плотностью экрана.Я много искал об этой проблеме и обнаружил, что мы можем справиться с этим с помощью различных тегов в манифесте, таких как

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

У меня есть два устройства, и оба находятся в категории NormalScreens.Один из них имеет плотность, равную 1,5, а другой - 2,0.Мой вопрос заключается в том, как я могу ограничить свое приложение на устройствах на основе плотности экрана.Использование тега <compatible-screens> не должно быть решением этой проблемы, как говорится в документации Google: «Любая комбинация размеров и плотности, явно не объявленная в этом теге, будет запрещена при установке приложения».

Что делать, ребята, помогите, пожалуйстаменя вышли.

1 Ответ

0 голосов
/ 05 марта 2019

Любая комбинация размеров и плотности, явно не объявленная в этом теге, будет запрещена при установке приложения.

Похоже, <compatible-screens> - это то, что вы хотите,Вам нужно будет перечислить все возможные комбинации экранов, которые вы делаете .Это все, кроме ldpi, mdpi и hdpi.

https://developer.android.com/guide/topics/manifest/compatible-screens-element https://developer.android.com/guide/practices/screens-distribution#FilteringHandsetApps

Так что это хорошее начало:

<compatible-screens>
    <screen android:screenSize="small" android:screenDensity="xhdpi"/>
    <screen android:screenSize="small" android:screenDensity="xxhdpi"/>
    <screen android:screenSize="small" android:screenDensity="xxxhdpi"/>
    <screen android:screenSize="normal" android:screenDensity="xhdpi"/>
    <screen android:screenSize="normal" android:screenDensity="xxhdpi"/>
    <screen android:screenSize="normal" android:screenDensity="xxxhdpi"/>
    <screen android:screenSize="large" android:screenDensity="xhdpi"/>
    <screen android:screenSize="large" android:screenDensity="xxhdpi"/>
    <screen android:screenSize="large" android:screenDensity="xxxhdpi"/>
    <screen android:screenSize="xlarge" android:screenDensity="xhdpi"/>
    <screen android:screenSize="xlarge" android:screenDensity="xxhdpi"/>
    <screen android:screenSize="xlarge" android:screenDensity="xxxhdpi"/>
</compatible-screens>

В документации перечислены другие поддерживаемые значения плотности экрана:

  • 320 (xhdpi)
  • 360
  • 420
  • 480 (xxhdpi)
  • 560
  • 640 (xxxhdpi)

Проблема заключается в том, есть ли устройство с другим значением, которое вы не включаете в свойпроявить это не будет видеть ваше приложение в магазине.Например, Sony Xperia Z5 Premium имеет плотность ~ 800 dpi , и приложение не будет работать, если вы не укажете плотность экрана 800 в своем манифесте.

<screen android:screenSize="normal" android:screenDensity="800"/>

Это только мое предположение.

Поэтому, прежде чем идти по этому пути, спросите себя, действительно ли вам это нужно.Если вместо этого было бы приемлемо сообщить пользователю, когда он впервые запускает приложение, что визуальная точность может быть не такой высокой, как предполагалось, из-за нетипичной плотности отображения (или что нет, я действительно не знаю ваш вариант использования).Пусть пользователь решит.

...