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

Android: отключить приложение для планшета

Я разработал приложение, теперь я хочу ограничить приложение для планшета.

означает, что приложение не должно запускаться на каких-либо планшетах. Для этого я указываю экраны поддержки в файле Androidmenifest.XML как:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.abc.xyz"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="5"
    android:targetSdkVersion="17"
    android:maxSdkVersion="17" />

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

<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<application
    android:icon="@drawable/appicon"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Black.NoTitleBar"
    android:allowBackup="true" >

    <activity
        android:name="com.abc.xyz.activities.hello"
        android:label="@string/title_activity_hello" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>        
</application>

</manifest>

Теперь проблема в том, что:

Приложение работает на планшете

 android:largeScreens="false"
 android:xlargeScreens="false"

После объявления тоже.

Теперь, что я должен делать. Пожалуйста, предложите мне и наведите меня.

4b9b3361

Ответ 1

Включите следующее в свой манифест:

<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" />
    <screen android:screenSize="small" android:screenDensity="xxhdpi" />
    <screen android:screenSize="small" android:screenDensity="xxxhdpi" />
    <!-- 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="small" android:screenDensity="xhdpi" />
    <screen android:screenSize="small" android:screenDensity="xxhdpi" />
    <screen android:screenSize="small" android:screenDensity="xxxhdpi" />
</compatible-screens>
</manifest>

Это поможет вам.

Ответ 2

Это предотвращает доступ на планшетах, но позволяет создавать новые ячейки плотности (xxhdpi и xxxhdpi) и позволяет избежать ошибок в проектах, которые скомпилированы для более низких SDK. Он должен быть прямым дочерним элементом <manifest> в AndroidManifest.xml

<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" />
    <screen android:screenSize="small" android:screenDensity="480" />
    <screen android:screenSize="small" android:screenDensity="640" />

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

Обновление 8.8.2016 Добавьте эту строку, если вы хотите поддерживать Nexus-5x-подобные устройства с плотностью 420

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

Ответ 3

Если вы хотите ограничить приложение к мобильным телефонам, используйте тег <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>

Подробнее... Объявление приложения доступно только для телефонов

Нельзя использовать тег <supports-screens>, если вы хотите ограничить приложение из таблеток. Это четко указано в официальном документе

Внимание. Если вы используете элемент для обратного сценарий (когда ваше приложение не совместимо с большими экранами) и установите для более крупных атрибутов размера экрана значение "false", затем внешнее такие сервисы, как Google Play, не применяются для фильтрации. Ваше приложение по-прежнему будут доступны для больших экранов, но когда он будет работать, он будет не изменяйте размер, чтобы соответствовать экрану. Вместо этого система будет эмулировать размер экрана телефона (около 320dp x 480dp; см. Совместимость экрана Режим для получения дополнительной информации). Если вы хотите запретить свое приложение от загрузки на больших экранах, используйте, как обсуждается в предыдущем разделе о объявлении приложения только для Handsets.

Ответ 4

пожалуйста, проверьте, если вы сделали макет для макета большой, layout-xlarge. если они присутствуют, ваше приложение будет работать на планшете, удалите эту папку макета, если она есть.