有人知道我如何通过编程检查系统版本(例如1.0、2.2等)吗?


当前回答

构建。Version是获取该数据的地方。下面是如何格式化它的代码片段。

public String getAndroidVersion() {
    String release = Build.VERSION.RELEASE;
    int sdkVersion = Build.VERSION.SDK_INT;
    return "Android SDK: " + sdkVersion + " (" + release +")";
}

Android SDK: 19 (4.4.4)

其他回答

构建。Version是获取该数据的地方。下面是如何格式化它的代码片段。

public String getAndroidVersion() {
    String release = Build.VERSION.RELEASE;
    int sdkVersion = Build.VERSION.SDK_INT;
    return "Android SDK: " + sdkVersion + " (" + release +")";
}

Android SDK: 19 (4.4.4)

Build.VERSION.RELEASE;

这将给你你的版本的实际数字;又名2.3.3或2.2。 使用Build.VERSION的问题。SDK_INT是如果你有一个根手机或自定义rom,你可以有一个非标准的操作系统(也就是我的android是运行2.3.5),在使用Build.VERSION时将返回null。SDK_INT因此build。version。release无论如何都会工作!

使用实例:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) {
     // only for gingerbread and newer versions
}

使用这个类

import android.os.Build;

/**
 * Created by MOMANI on 2016/04/14.
 */
public class AndroidVersionUtil {
    public static int getApiVersion() {
        return android.os.Build.VERSION.SDK_INT;
    }

    public static boolean isApiVersionGraterOrEqual(int thisVersion) {
        return android.os.Build.VERSION.SDK_INT >= thisVersion;
    }
}

你可以在Build.VERSION中找到Android版本。

文档建议您检查Build.VERSION。SDK_INT对应Build.VERSION_CODES中的值。

这很好,只要你意识到Build.VERSION。SDK_INT只在API Level 4中引入,也就是Android 1.6 (Donut)。所以这不会影响你,但如果你想让你的应用在Android 1.5或更早的版本上运行,那么你必须使用已弃用的Build.VERSION.SDK。