Как ограничить приложение только для телефонов 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>