как узнать: это телефон или планшет? - PullRequest
1 голос
/ 28 февраля 2012

Я создал приложение, которое очень хорошо работает на планшетах и ​​телефонах.Для обнаружения (Настройки интерфейса) я использовал ширину и высоту .. if width > 1280 - это должен быть планшет ... Но .. мой друг проверил это приложение на Samsung Galaxy Note ... Это маленький телефон (НЕ ТАБЛЕТКА), НО разрешение экранатам = 1280х800.И теперь у меня есть проблема с отображением там .. Кто-нибудь может сказать мне - есть ли способ обнаружить: планшет или телефон ??

Скажите, пожалуйста, если кто-нибудь знает ..

С уважением, Питер.

ps извините за мой плохой английский .. я пытаюсь быть лучше.

Ответы [ 5 ]

1 голос
/ 28 февраля 2012

Вы можете попробовать этот код, найденный в примере расширения Chrome to Phone:

static boolean isTablet (Context context) {
        // TODO: This hacky stuff goes away when we allow users to target devices
        int xlargeBit = 4; // Configuration.SCREENLAYOUT_SIZE_XLARGE;  // upgrade to HC SDK to get this
        Configuration config = context.getResources().getConfiguration();
        return (config.screenLayout & xlargeBit) == xlargeBit;
    }
0 голосов
/ 28 февраля 2012

Чтобы телефон был телефоном, он должен иметь возможность совершать звонки.Почему бы вам не проверить TelephonyManager Существует метод, называемый getPhoneType ().Если он возвращает PHONE_TYPE_NONE, то это не телефон.

0 голосов
/ 28 февраля 2012

Вы можете использовать что-то вроде Device Atlas , чтобы обнаружить эти функции в пользовательском агенте.Предлагаем API, который вы можете разместить самостоятельно, и они также предлагают облачный сервис.Оба являются премиальными (платными)

В качестве альтернативы вы можете использовать что-то вроде Wurfl , что, по моему опыту, менее точно.

0 голосов
/ 28 февраля 2012

Существует пример проектирования для нескольких экранов, посмотрите, поможет ли это. Проектирование нескольких экранов

0 голосов
/ 28 февраля 2012

Ширина (или высота) в пикселях определяют не размер экрана. Размер экрана зависит от разрешения (в пикселях) и плотности. Android предоставляет различные концепции для поддержки экрана разных размеров. Подробности смотрите здесь: http://developer.android.com/guide/practices/screens_support.html

...