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


当前回答

if (Build.VERSION.SDK_INT >= ApiHelper.VERSION_CODES.HONEYCOMB_MR2) {
//do anything you  like.
}

其他回答

检查android.os.Build.VERSION。

CODENAME:当前的开发代码名,如果这是一个发布版本,则为字符串“REL”。 INCREMENTAL:底层源代码控制用来表示此构建的内部值。 RELEASE:用户可见的版本字符串。

使用实例:

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

例如,一个特性只适用于api21上面,下面我们修复api21下面的bug

    if(Build.VERSION.SDK_INT >= 21) {
    //only api 21 above
    }else{
   //only api 21 down
    }
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无论如何都会工作!

根据Android文档:

release - "用户可见的版本字符串。例如,“1.0” 或者"3.4b5"或者"香蕉"

为了得到一个普通的Android版本(2.3,5.1,12.0等),我使用这个函数:

private fun getVersion(): Float {
    val release = Build.VERSION.RELEASE
    val parsedVersion = "\\d+(\\.\\d+)?".toRegex()
        .find(release)?.value
    if (parsedVersion.isNullOrBlank()) return 0f
    return try {
        parsedVersion.toFloat()
    } catch (e: Exception) {
        0f
    }
}