有没有办法获得手机当前正在运行的API版本?


当前回答

是这样的:

String versionRelease = BuildConfig.VERSION_NAME;

versionRelease :- 2.1.17

请确保您的导入包是正确的(导入包your_application_package_name,否则将无法正常工作)。

其他回答

我更喜欢把版本作为数字来处理,而不是这样写:

  public static float getAPIVerison() {

    Float f = null;
    try {
        StringBuilder strBuild = new StringBuilder();
        strBuild.append(android.os.Build.VERSION.RELEASE.substring(0, 2));
        f = new Float(strBuild.toString());
    } catch (NumberFormatException e) {
        Log.e("", "error retriving api version" + e.getMessage());
    }

    return f.floatValue();
}

是这样的:

String versionRelease = BuildConfig.VERSION_NAME;

versionRelease :- 2.1.17

请确保您的导入包是正确的(导入包your_application_package_name,否则将无法正常工作)。

明白了。它使用Context类的getApplicationInfo()方法。

android.os.Build.VERSION.SDK应该给出API级别的值。你可以很容易地在android文档中找到api级别到android版本的映射。我认为,8代表2.2,7代表2.1,以此类推。

Build.VERSION.RELEASE;

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

要使用它,你可以这样做;

String androidOS = Build.VERSION.RELEASE;