如何查看Android系统版本?
有谁知道如何以编程方式检查系统版本(例如 1.0
、2.2
等)?
Does anyone know how to check the system version (e.g. 1.0
, 2.2
, etc.) programmatically ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(14)
使用这个类
use this class
如果您的 Android 设备上有
bash
,您可以使用以下 bash 函数:Given you have
bash
on your android device, you can use this bash function :根据Android文档:
为了获得普通的 Android 版本(2.3、5.1、12.0 等),我使用此函数:
According to Android documentation:
In order to get a plain Android version (2.3, 5.1, 12.0, etc) I use this function:
如何使用它的示例:
Example how to use it:
检查
android.os.Build.VERSION
。Check
android.os.Build.VERSION
.Build.Version 是获取此数据的位置。这是有关如何格式化它的代码片段。
看起来像这样“Android SDK:19(4.4.4)”
Build.Version is the place go to for this data. Here is a code snippet for how to format it.
Looks like this "Android SDK: 19 (4.4.4)"
要检查大于或等于 Marshmallow 的设备版本,请使用此代码。
为了检查其他人只需更改 VERSION_CODES,例如,
K 代表奇巧,
L 代表 loolipop
N 代表牛轧糖等等...
For checking device version which is greater than or equal to Marshmallow ,use this code.
for ckecking others just change the VERSION_CODES like,
K for kitkat,
L for loolipop
N for Nougat and so on...
这将为您提供版本的实际编号;又名 2.3.3 或 2.2。
使用 Build.VERSION.SDK_INT 的问题是,如果您有 root 手机或自定义 rom,则可能有非标准操作系统(又名我的 Android 正在运行 2.3.5),并且在使用 Build.VERSION.SDK_INT 时将返回 null所以无论如何 Build.VERSION.RELEASE 都会起作用!
That will give you the actual numbers of your version; aka 2.3.3 or 2.2.
The problem with using Build.VERSION.SDK_INT is if you have a rooted phone or custom rom, you could have a none standard OS (aka my android is running 2.3.5) and that will return a null when using Build.VERSION.SDK_INT so Build.VERSION.RELEASE will work no matter what!
您可以查看
Build 查看 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
代替。You can find out the Android version looking at
Build.VERSION
.The documentation recommends you check
Build.VERSION.SDK_INT
against the values inBuild.VERSION_CODES
.This is fine as long as you realise that
Build.VERSION.SDK_INT
was only introduced in API Level 4, which is to say Android 1.6 (Donut). So this won't affect you, but if you did want your app to run on Android 1.5 or earlier then you would have to use the deprecatedBuild.VERSION.SDK
instead.我无法对答案发表评论,但 Kaushik 的答案有一个巨大的错误:
SDK_INT与系统版本不同,实际上指的是API Level。
值
Build.VERSION_CODES.ICE_CREAM_SANDWICH
等于 14。14是Ice Cream Sandwich的API级别,系统版本为4.0。因此,如果您编写 4.0,您的代码将在从 Donut 开始的所有设备上执行,因为 4 是 Donut 的 API 级别(
Build.VERSION_CODES.DONUT
等于 4)。这个例子说明了为什么使用“幻数”是一个坏习惯。
I can't comment on the answers, but there is a huge mistake in Kaushik's answer:
SDK_INT is not the same as system version but actually refers to API Level.
The value
Build.VERSION_CODES.ICE_CREAM_SANDWICH
equals 14.14 is the API level of Ice Cream Sandwich, while the system version is 4.0. So if you write 4.0, your code will be executed on all devices starting from Donut, because 4 is the API level of Donut (
Build.VERSION_CODES.DONUT
equals 4).This example is a reason why using 'magic number' is a bad habit.
请注意,Build.VERSION.SDK_INT 不是可靠,@Falcon165o 提到过,最近我也遇到了这个。
因此,为了获取当前安装的android的字符串数据(基于Android版本列表),我做了一个像这样的代码:
Java
Kotlin
它产生的输出示例:
Be aware that Build.VERSION.SDK_INT isn't reliable, it's mentioned by @Falcon165o and recently I ran into that one too.
So to get the String data (based on Android version list) of currently installed android, I made a code like this:
Java
Kotlin
Example of an output it produce:
例如,某个功能仅适用于 api21 up,下面我们修复 api21 down 中的错误
For example, a feature only works for api21 up the following we fix bugs in api21 down
使用此方法:
Use This method: