有人知道我如何通过编程检查系统版本(例如1.0、2.2等)吗?
当前回答
要检查设备版本大于或等于Marshmallow,请使用此代码。
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M){
}
如果要检查其他的,只需要更改VERSION_CODES, K代表kitkat, L代表棒棒糖 N代表牛轧糖等等……
其他回答
注意Build.VERSION。SDK_INT不可靠,@Falcon165o提到过,最近我也遇到了这个问题。
因此,为了获得当前安装的Android的字符串数据(基于Android版本列表),我编写了如下代码:
Java
//Current Android version data
public static String currentVersion(){
double release=Double.parseDouble(Build.VERSION.RELEASE.replaceAll("(\\d+[.]\\d+)(.*)","$1"));
String codeName="Unsupported";//below Jelly Bean
if(release >= 4.1 && release < 4.4) codeName = "Jelly Bean";
else if(release < 5) codeName="Kit Kat";
else if(release < 6) codeName="Lollipop";
else if(release < 7) codeName="Marshmallow";
else if(release < 8) codeName="Nougat";
else if(release < 9) codeName="Oreo";
else if(release < 10) codeName="Pie";
else if(release >= 10) codeName="Android "+((int)release);//since API 29 no more candy code names
return codeName+" v"+release+", API Level: "+Build.VERSION.SDK_INT;
}
科特林
fun currentVersion(): String {
val release = java.lang.Double.parseDouble(java.lang.String(Build.VERSION.RELEASE).replaceAll("(\\d+[.]\\d+)(.*)", "$1"))
var codeName = "Unsupported"//below Jelly Bean
if (release >= 4.1 && release < 4.4) codeName = "Jelly Bean"
else if (release < 5) codeName = "Kit Kat"
else if (release < 6) codeName = "Lollipop"
else if (release < 7) codeName = "Marshmallow"
else if (release < 8) codeName = "Nougat"
else if (release < 9) codeName = "Oreo"
else if (release < 10) codeName = "Pie"
else if (release >= 10) codeName = "Android "+(release.toInt())//since API 29 no more candy code names
return codeName + " v" + release + ", API Level: " + Build.VERSION.SDK_INT
}
它产生的输出示例:
棉花糖v6.0, API级别:23
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无论如何都会工作!
要检查设备版本大于或等于Marshmallow,请使用此代码。
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M){
}
如果要检查其他的,只需要更改VERSION_CODES, K代表kitkat, L代表棒棒糖 N代表牛轧糖等等……
if (Build.VERSION.SDK_INT >= ApiHelper.VERSION_CODES.HONEYCOMB_MR2) {
//do anything you like.
}
检查android.os.Build.VERSION。
CODENAME:当前的开发代码名,如果这是一个发布版本,则为字符串“REL”。 INCREMENTAL:底层源代码控制用来表示此构建的内部值。 RELEASE:用户可见的版本字符串。
推荐文章
- Android - SPAN_EXCLUSIVE_EXCLUSIVE跨度不能为零长度
- TextView的字体大小在Android应用程序改变字体大小从本机设置
- 如何模拟Android杀死我的进程
- 禁用EditText闪烁光标
- Android Eclipse -无法找到*.apk
- 设置TextView文本从html格式的字符串资源在XML
- 如何允许所有网络连接类型HTTP和HTTPS在Android(9)馅饼?
- Android加载JS包失败
- Android Studio, logcat在应用程序关闭后清理
- 在android中从上下文获取活动
- 无法解析主机"<URL here>"没有与主机名关联的地址
- getActivity()在Fragment函数中返回null
- 按钮背景是透明的
- 在Mac OS X上哪里安装Android SDK ?
- 我如何获得图像缩放功能?