文档章节

运行时获取Android API版本

JORDANSG
 JORDANSG
发布于 2012/10/13 15:45
字数 118
阅读 8081
收藏 2

As described in the android documentation, the SDK level (integer) the phone is running is available in:

android.os.Build.VERSION.SDK_INT;

The enum corresponding to this int is in the android.os.Build.VERSION_CODES class.

Code example:

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

Edit: This SDK_INT is available since Donut (android 1.6 / API4) so make sure your application is not retro-compatible with Cupcake (android 1.5 / API3) when you use it or your application will crash (thanks to Programmer Bruce for the precision).

Corresponding android documentation:

http://developer.android.com/reference/android/os/Build.VERSION.html#SDK_INT

http://developer.android.com/reference/android/os/Build.VERSION_CODES.html

本文转载自:http://stackoverflow.com/questions/3423754/retrieving-android-api-version-programmatically

JORDANSG
粉丝 22
博文 165
码字总数 56355
作品 0
深圳
CTO(技术副总裁)
私信 提问
加载中

评论(2)

JORDANSG
JORDANSG 博主
/**
* 判断Android系统API的版本
*
* @return
*/
public static int getAPIVersion(){
int APIVersion;
try {
APIVersion = Integer.valueOf(android.os.Build.VERSION.SDK);
} catch (NumberFormatException e) {
APIVersion = 0;
}
return APIVersion;
}
JORDANSG
JORDANSG 博主
/**
* 判断Android系统SDK的版本,我们一般用currentVersion < android.os.Build.VERSION_CODES.FROYO的方式进行判断是2.2以下版本
*
* @return
*/
public static String gesSdkVersion(){
// 见http://developer.android.com/reference/android/os/Build.VERSION_CODES.html
int currentVersion = android.os.Build.VERSION.SDK_INT;
String sdkVersion;
if(currentVersion == android.os.Build.VERSION_CODES.BASE) {
sdkVersion="1.0";
}else if(currentVersion == android.os.Build.VERSION_CODES.BASE_1_1) {
sdkVersion="1.1";
}else if(currentVersion == android.os.Build.VERSION_CODES.CUPCAKE) {
sdkVersion="1.5";
}else if(currentVersion == android.os.Build.VERSION_CODES.CUR_DEVELOPMENT) {
// Magic version number for a current development build, which has not yet turned into an official release.
sdkVersion="Magic version";
}else if(currentVersion == android.os.Build.VERSION_CODES.DONUT) {
sdkVersion="1.6";
}else if(currentVersion == android.os.Build.VERSION_CODES.ECLAIR) {
sdkVersion="2.0";
}else if(currentVersion == android.os.Build.VERSION_CODES.ECLAIR_0_1) {
sdkVersion="2.0.1";
}else if(currentVersion == android.os.Build.VERSION_CODES.ECLAIR_MR1) {
sdkVersion="2.1";
} else if(currentVersion == android.os.Build.VERSION_CODES.FROYO) {
sdkVersion="2.2";
} else if(currentVersion == android.os.Build.VERSION_CODES.GINGERBREAD) {
sdkVersion="2.3";
}else if(currentVersion == android.os.Build.VERSION_CODES.GINGERBREAD_MR1) {
sdkVersion="2.3.3";
} else if(currentVersion == android.os.Build.VERSION_CODES.HONEYCOMB) {
sdkVersion="3.0";
}else if(currentVersion == android.os.Build.VERSION_CODES.HONEYCOMB_MR1) {
sdkVersion="3.1";
}else if(currentVersion == android.os.Build.VERSION_CODES.HONEYCOMB_MR2) {
sdkVersion="3.2";
}else if(currentVersion == android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
sdkVersion="4.0";
}else if(currentVersion == android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
sdkVersion="4.0.3";
}

return sdkVersion;
}
Unity中Android API 28之后无法HTTP请求

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/zhenghongzhi6/article/details/90294799 本文节选自洪流学堂公众号技...

关尔Manic
05/17
0
0
创建灵活的用户界面-Android Fragment

创建灵活的用户界面-android Fragment. Android Support Library(支持库)提供了包含一个API库的JAR文件,当你的应用运行在Android早期版本时,Support Library(支持库)允许你的应用使用最近版...

顶层设计
2013/02/26
5.3K
0
PermissionsDispatcher,Android 6.0 运行时权限

运行时权限 从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。 系统权限分为两类: 正常权限:只需在你应用的 Androidmanifest.xml 中列出,...

SuShine
01/08
240
0
针对现代 Android 更新游戏 API 等级

发布人: Tom Greenaway, 合作伙伴高级开发技术推广工程师 我们已在去年宣布:自 2018 年 8 月起, Google Play 要求所有新上线的应用和游戏都必须针对新的 Android API 等级进行开发 —— 设...

Android_开发者
2018/09/13
0
0
谷歌的Android Q到底有哪些新特性及变更?

Android Q 隐私更改相关介绍 存储范围变更 Android Q 改变了应用程序访问设备外部存储上文件的方式。 通过使用更细粒度的媒体特定权限替换以前的 READEXTERNALSTORAGE 和 WRITEEXTERNALSTORA...

终端研发部
04/09
69
0

没有更多内容

加载失败,请刷新页面

加载更多

网站安全维护公司对渗透测试php后门分析

很多想做渗透测试的朋友都想了解关于PHP后门漏洞的安全测试重点方法,以及该如何预防被中php后门,本节由我们的Sine安全高级渗透工程师进行全面的讲解,来让大家更好的理解和了解php代码的安全...

网站安全
14分钟前
7
0
在github上创建代码仓库时忘记添加.gitignore文件或修改了.gitignore该怎么办?

#清除本地缓存(改变成未track状态) #git rm -r --cached . 表示清除项目中所有文件的本地缓存 git rm -r --cached xxx #xxx表示不想版本控制的文件,比如小编可以输入test.o #.gitignore中的...

博爱飞扬
14分钟前
6
0
Fsimage 与 EditLog定义及合并过程

有很多客户端在向 hdfs 中写数据,同时有很多客户端在查数据,这就涉及到一个响应速度问题。因为只有一个 namenode ,客户端在写的时候,必须迅速记下来。 1. 向 namenode 询问可以存储到哪些...

Garphy
18分钟前
5
0
TI KeyStone C66x开发板处理器、NAND FLASH、NOR FLASH

TL6678F-EasyEVM是广州创龙基于SOM-TL6678F核心板而研发的一款多核高性能DSP+FPGA开发板。开发板采用核心板+底板方式,底板采用沉金无铅工艺的8层板设计,尺寸为247.33mm*139.8mm,它为用户提...

Tronlong创龙
35分钟前
5
0
【2019年8月版本】OCP 071认证考试最新版本的考试原题-第13题

Choose the best answer. Examine this query: SELECT TRUNC (ROUND(156.00,-2),-1) FROM DUAL; What is the result? A) 16 B) 160 C) 150 D) 200 E) 100 Answer:D (解析:关键就是 round ......

oschina_5359
46分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部