Подтвердить что ты не робот

Сделать приложение для Android недоступным для планшетов

Я публикую свое приложение в Play Store, и я не хочу, чтобы он был доступен для планшетов. Как я могу это сделать?

Я не хочу вручную исключать каждый отдельный планшет в консоль разработчика android, но мне действительно нужно, чтобы мое приложение запускалось исключительно на смартфоне.

EDIT: Я сделал то, что вы предлагали, но вот результат:

enter image description here

И для дальнейшего объяснения: мне нужно, чтобы мое приложение запускалось на устройствах, которые обычные люди называют смартфоном, а не на устройствах, которые обычные люди называют планшетами... например. он должен работать на "Galaxy Note 2", но не на "Galaxy Tab"

SOLVED Благодаря @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>

И выполните следующие действия: Щелкните правой кнопкой мыши по проекту → properties → android → выберите цель больше 8

4b9b3361

Ответ 1

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 и т.д.).


UPDATE

Во-первых, в отношении ошибок сборки, если вы читаете документацию для элемента <compatible-screens>, вы заметите, что она была добавлена ​​в уровень API 9, и по какой-то странной причине вы создаете цель, стареет, чем это.

Во-вторых, относительно:

Мне нужно, чтобы мое приложение запускалось на устройствах, которые обычные люди называют смартфоном, а не на устройствах, которые обычные люди называют планшетами... например. он должен работать на "Galaxy Note 2", но не на "Galaxy Tab"

Это невозможно, просто потому, что у вас нет конкретного определения того, что вы делаете, и не хотите, чтобы ваше приложение отправлялось.

На планете насчитывается ~ 8 миллиардов "нормальных людей". Вы можете взять интервью у каждого из них и спросить их, что они думают о Galaxy Note 2. Некоторые скажут телефон. Некоторые скажут планшет. Некоторые скажут "phablet", что не будет полезно. Некоторые из вас будут преследовать вас из своих домов, утверждая, что вы принесли в их среду какого-то светоизлучающего демона (это тоже не будет полезно, и может быть больно, если у них есть камни, которые можно бросить).

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

(обратите внимание, что "всеми людьми" я исключаю тех, кто мог бы считать вас демонами)

Например:

  • "Я хочу отправить на всех устройствах, которые имеют возможности телефонии, независимо от размера экрана"

  • "Я хочу отправить на все устройства с размером экрана меньше, чем такие-то и несколько дюймов на самой маленькой стороне:

Ответ 2

Использовать тег экрана поддержки в файле манифеста неправильный метод. Alway использует <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>

Ответ 3

Вы можете попробовать добавить проверку какого-либо типа для обслуживания 3g или 4g. Это исключит большинство, но, вероятно, не все планшеты.