Android Honeycomb приложение, работающее на ICS (Ice Cream Sandwitch) - PullRequest
0 голосов
/ 16 января 2012

У меня есть приложение, разработанное для Honeycomb (изначально 3.0), и после выпуска ICS пользователи могут установить его на свои телефоны с ICS, а не только на планшеты. Как я могу отфильтровать эти телефоны? Я пытался с <support-screens>, но это не работает. Также интересная (по крайней мере для меня) вещь, которую мое приложение не будет уменьшать до меньших экранов. Я использовал элементы управления фиксированного размера, но размер указан в dp.

Короче говоря:

  1. Кто-нибудь знает, как я могу фильтровать телефоны ICS? (желательно из кода)
  2. Что я должен сделать для поддержки телефонов ICS? (Думаю, мне нужно реализовать совершенно новую раскладку для телефонов ICS, но мне все еще остается вопрос, как определить, какое это устройство, телефон или планшет?

Ответы [ 3 ]

1 голос
/ 17 января 2012
public static boolean isHoneycomb() {
    // Can use static final constants like HONEYCOMB, declared in later versions
    // of the OS since they are inlined at compile time. This is guaranteed behavior.
    return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB;
}

public static boolean isTablet(Context context) {
    return (context.getResources().getConfiguration().screenLayout
            & Configuration.SCREENLAYOUT_SIZE_MASK)
            >= Configuration.SCREENLAYOUT_SIZE_LARGE;
}

public static boolean isHoneycombTablet(Context context) {
    return isHoneycomb() && isTablet(context);
}

Скопировано из этого ответа здесь: https://stackoverflow.com/a/8427523/253583

Возможно, вы также захотите запретить Android Market разрешать пользователям устанавливать его на телефонах с http://developer.android.com/guide/topics/manifest/supports-screens-element.html в манифесте.

0 голосов
/ 18 января 2012

Если вы хотите, чтобы ваше приложение отображалось в Маркете для планшетов, в вашем AndroidManifest.xml используйте атрибут <support-screens> (дополнительная информация здесь ).Убедитесь, что вы используете оба идентификатора до Honeycomb 3.2 (x-large, large) и 3.2+ (600dp и т. Д.).

И что именно вы подразумеваете под "мое приложение не сокращается"?Не могли бы вы дать больше информации здесь?

0 голосов
/ 16 января 2012

Вы можете проверить, используя

if(Build.VERSION.SDK_INT >= 14) {
    //ics
}

, где Build - android.os. Класс сборки

...