Intereting Posts
Определенный макет xml в макете-земле не отображается в приложении Android Ошибка отображения ящика чертежа в редакторе макетов ADT Android: как динамически загружать изображение с сервера по его имени из SQlite Запустить Google Now или телефон по умолчанию для голосового поиска? Как сделать это более эффективным? Android – Как начать запись видео автоматически при вызове камеры Получение интервала символов шрифта в Android Использование PreferenceScreen / PreferenceActivity для настройки виджетов главного экрана Обезьяна Android вызывает исключение уведомления об адаптере в файле android.widget.HeaderViewListAdapter Android DataBase заблокирован другим потоком Создание и сохранение файла журнала на устройстве в Android Методология тестирования Java и андроида Почему нам нужно больше одного манифеста для проекта Android? Как курсор знает, какой элемент щелкнуть в списке? Как подписать APK с несколькими сертификатами?

Как ограничить приложение только для телефонов Android

Привет, я нацелен на пользователей только на телефоны Android . Я хочу ограничить приложение для установки на телефоны Android не на phablets и планшеты.

Какую конфигурацию мне нужно применить в AndroidManifest.xml, чтобы приложение Google Play не отображало приложение в таблице и phablets.

Заранее спасибо.

Цитирование документации :

Поскольку система обычно масштабирует приложения, чтобы они соответствовали более крупным экранам, вам не нужно фильтровать приложение с больших экранов. До тех пор, пока вы будете следовать рекомендациям по обеспечению безопасности экрана , ваше приложение должно хорошо работать на больших экранах, таких как планшеты. Однако вы можете обнаружить, что ваше приложение не может хорошо масштабироваться или, возможно, вы решили опубликовать две версии вашего приложения для разных конфигураций экрана. В этом случае вы можете использовать элемент <compatible-screens> для управления распределением вашего приложения на основе сочетаний размера экрана и плотности. Внешние службы, такие как Google Play, используют эту информацию, чтобы применить фильтрацию к вашему приложению, чтобы только приложения, имеющие конфигурацию экрана, с которой вы заявляете совместимость, могут загружать ваше приложение.

Имейте в виду, что <compatible-screens> требуют белого списка всех размеров и плотности экрана, которые вы поддерживаете (и мы получаем новую плотность каждый год или около того), и вы ограничены классическими размерами ведра ( small , large , xlarge ). В образце документации отсутствуют некоторые плотности:

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

Вам нужно будет добавить дополнительные элементы, если они готовы поддерживать устройства tvdpi , xxhdpi и xxxhdpi .

Указание документации для <compatible-screens> :

Предостережение : Обычно вы не должны использовать этот манифест. Использование этого элемента может значительно снизить потенциальную базу пользователей для вашего приложения, не позволяя пользователям устанавливать ваше приложение, если у них есть устройство с конфигурацией экрана, которую вы еще не указали. Вы должны использовать его только в крайнем случае, когда приложение абсолютно не работает с определенными конфигурациями экрана. Вместо использования этого элемента вы должны следовать руководству по поддержке нескольких экранов, чтобы обеспечить масштабируемую поддержку нескольких экранов с использованием альтернативных макетов и растровых изображений для разных размеров экрана и плотности.

И имейте в виду, что маркетинговые термины, такие как «phablet», не определены, и поэтому ваше приложение может завершить доставку на некоторых устройствах, которые, по вашему мнению, являются phablet или что кто-то другой считает, что это phablet.

Из-за высокой плотности новых устройств, таких как Nexus 5X, Nexus 6P и Samsung Galaxy S6, нам пришлось адаптировать манифест следующим образом:

 <compatible-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="420" /> <screen android:screenSize="small" android:screenDensity="480" /> <screen android:screenSize="small" android:screenDensity="560" /> <screen android:screenSize="small" android:screenDensity="640" /> <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="420" /> <screen android:screenSize="normal" android:screenDensity="480" /> <screen android:screenSize="normal" android:screenDensity="560" /> <screen android:screenSize="normal" android:screenDensity="640" /> <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" /> <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" /> </compatible-screens> 

Альтернативой является проверка функции android.hardware.telephony

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

Это ограничило бы приложение телефонами. Конечно, в него будут включены phablets, но это было бы (IMHO) лучшим решением, чем когда-либо изменяющийся подход к разрешению экрана.

Это действительно зависит от того, что вы думаете о телефоне / phablets.

Существует официальное руководство, которое будет объяснять намного лучше меня, но, по сути, вы можете сделать следующее, чтобы ограничить ваше приложение только мобильными устройствами.

AndroidManifest.xml

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