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


当前回答

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

其他回答

我通常喜欢在函数中添加这些代码来获得Android版本:

int whichAndroidVersion;

whichAndroidVersion= Build.VERSION.SDK_INT;
textView.setText("" + whichAndroidVersion); //If you don't use "" then app crashes.

例如,上面的代码将文本设置到我的textView为“29”现在。

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

试试这个:

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

如Android文档中所述,手机正在运行的SDK级别(整数)可在:

android.os.Build.VERSION.SDK_INT

这个int对应的类在android.os.Build中。VERSION_CODES类。

代码示例:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP){
    // Do something for lollipop and above versions
} else{
    // do something for phones running an SDK before lollipop
}

编辑:这个SDK_INT从Donut (android 1.6 / API4)开始就可用了,所以请确保您的应用程序在使用它时不与Cupcake (android 1.5 / API3)向后兼容,否则您的应用程序将崩溃(感谢程序员Bruce的精度)。

对应的android文档在这里和这里

是这样的:

String versionRelease = BuildConfig.VERSION_NAME;

versionRelease :- 2.1.17

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