Сделать приложение для 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
Ответы
Ответ 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. Это исключит большинство, но, вероятно, не все планшеты.