определить уровень API для платформ <1.6 - PullRequest
4 голосов
/ 01 июля 2010

Build.VERSION.SDK_INT был добавлен только на уровне API 4 (1.6).Можно ли определить, имеет ли телефон уровень API 3 (1,5)?

Ответы [ 4 ]

3 голосов
/ 01 июля 2010

Вы можете использовать Build.VERSION.SDK, который возвращает строку и доступен во всех версиях Android до 1.6.Он помечен как устаревший, поэтому вы должны использовать отражение, чтобы гарантировать, что ваше приложение не столкнется с проблемами в будущих версиях Android.

Итак, чтобы обеспечить поддержку всех версий <1.6, вы можете использовать модифицированную версию Alexs.код; </p>

public static int getPlatformVersion() {
    try {
        Field verField = Class.forName("android.os.Build$VERSION").getField("SDK_INT");
        int ver = verField.getInt(verField);
        return ver;
    } catch (Exception e) {
        try {
            Field verField = Class.forName("android.os.Build$VERSION").getField("SDK");
            String verString = (String) verField.get(verField);
            return Integer.parseInt(verString);
        } catch(Exception e) {
            return -1;
        }
    }
}
1 голос
/ 21 апреля 2012

Поскольку речь идет о статических полях, сделать это немного проще, как показано ниже:

public static int getVersion() {
    try {
        return Class.forName("android.os.Build$VERSION").getField("SDK_INT").getInt(null);
    } catch (Exception ex) {
        try {
            return Integer.parseInt((String) Class.forName("android.os.Build$VERSION").getField("SDK").get(null));
        } catch (Exception ex1) {
            return 0;
        }
    }
}
1 голос
/ 01 июля 2010
public static int getPlatformVersion() {
    try {
        Field verField = Class.forName("android.os.Build$VERSION")
                .getField("SDK_INT");
        int ver = verField.getInt(verField);
        return ver;
    } catch (Exception e) {
        // android.os.Build$VERSION is not there on Cupcake
        return 3;
    }
}
0 голосов
/ 01 июля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...