Как сделать мое Android-приложение доступным только для мобильных телефонов? - PullRequest
3 голосов
/ 29 октября 2011

Мое приложение разработано специально для мобильных телефонов, но когда я пытаюсь загрузить приложение на рынок, оно показывает, что мое приложение также доступно для планшетов (xlarge). Я намеренно не хочу, чтобы мое приложение отображалось на рынке при доступе с планшетов.

Я попытался поиграться с поддержкой minSdkVersion и targetVersion, а также с элементами.

Я также пытался использовать

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

Но я получаю ошибку:

В этой строке найдено несколько аннотаций:
- ошибка: не найден идентификатор ресурса для атрибута 'screenDensity' в пакете
'Android'
- ошибка: не найден идентификатор ресурса для атрибута 'screenSize' в пакете
'android'

Чего мне не хватает?

Ответы [ 4 ]

4 голосов
/ 29 октября 2011

Вы должны использовать рыночные фильтры , чтобы указать именно те вещи, которые действительно нужны вашему приложению.Если устройство должно быть мобильным, добавить <uses-feature android:name="android.hardware.telephony"/>

Фильтрация планшетов путем указания совместимых размеров экрана не имеет смысла.Смотри для списка аппаратных функций.Не просто добавляйте элементы только для фильтрации, в манифесте должно быть указано, что требуется приложению для работы.

1 голос
/ 29 октября 2011

Как насчет использования тега <supports-screens>?

<manifest ... >
    <supports-screens android:smallScreens="true"
                      android:normalScreens="true"
                      android:largeScreens="true"
                      android:xlargeScreens="false"
                      android:largestWidthLimitDp="600" />
    <application>
    </application>
</manifest>

Для получения дополнительной информации вы можете обратиться к этому.

http://developer.android.com/guide/topics/manifest/supports-screens-element.html

0 голосов
/ 25 января 2018

Посмотрев каталог устройств игровой приставки, вам нужно указать больше значений screenDensity. (См. Ниже, на сегодняшний день) Я думаю, что всегда есть риск появления новых значений в каталоге устройств. Поэтому вы должны постоянно отслеживать количество устройств, которые ваше приложение не поддерживает.

    <!-- Exclude Tablets -->
<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" />
    <screen android:screenSize="small" android:screenDensity="213" />
    <screen android:screenSize="small" android:screenDensity="280" />
    <screen android:screenSize="small" android:screenDensity="360" />
    <screen android:screenSize="small" android:screenDensity="400" />
    <screen android:screenSize="small" android:screenDensity="420" />
    <screen android:screenSize="small" android:screenDensity="480" />
    <screen android:screenSize="small" android:screenDensity="560" />
    <!-- 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="xxhdpi" />
    <screen android:screenSize="normal" android:screenDensity="xxxhdpi" />
    <screen android:screenSize="normal" android:screenDensity="213" />
    <screen android:screenSize="normal" android:screenDensity="280" />
    <screen android:screenSize="normal" android:screenDensity="360" />
    <screen android:screenSize="normal" android:screenDensity="400" />
    <screen android:screenSize="normal" android:screenDensity="420" />
    <screen android:screenSize="normal" android:screenDensity="480" />
    <screen android:screenSize="normal" android:screenDensity="560" />
</compatible-screens>
0 голосов
/ 29 октября 2011

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

//verify the android version running on the phone/device
int currentDeviceVersion = android.os.Build.VERSION.SDK_INT;

//since tablets would be running HoneyComb or higher
if (currentDeviceVersion >= android.os.Build.VERSION_CODES.HONEYCOMB){
    // display message that app is not supported for android honeycomb and above
    // End (finish) app
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...