`

Build.VERSION.SDK_INT

 
阅读更多
转自:http://blog.csdn.net/l_serein/article/details/6287474

尽管Android向下兼容不好,但是一个程序还是可以在多个平台上跑的。向下兼容不好,接口改变,新的平台上不能用旧的API,旧的平台更不可能用新的API,不等于一个平台需要一个APK。可以在高SDK上开发,并在程序中作版本判断,低版本运行环境使用旧的API。

         例如要开发一个显示通话记录的程序,需要兼容1.6~2.2,我们知道不同的平台SDK level不同,1.5是3,1.6是4,2.2是8。对应的可以使用android.os.Build进行判断。源代码如下:

if(Build.VERSION.SDK_INT <= 4)

        {

        Toast.makeText(this, "version" + Build.VERSION.RELEASE+ " :" + Build.VERSION.SDK_INT, Toast.LENGTH_SHORT).show();

        }

        else

        {

        Toast.makeText(this, "version" + Build.VERSION.RELEASE+ " :" + Build.VERSION.SDK_INT, Toast.LENGTH_SHORT).show();

        }



转自:http://www.linuxidc.com/Linux/2011-11/48325.htm
android.os.Build
Java代码
Build.BOARD // 主板  
Build.BRAND // android系统定制商  
Build.CPU_ABI // cpu指令集  
Build.DEVICE // 设备参数  
Build.DISPLAY // 显示屏参数  
Build.FINGERPRINT // 硬件名称  
Build.HOST  
Build.ID // 修订版本列表  
Build.MANUFACTURER // 硬件制造商  
Build.MODEL // 版本  
Build.PRODUCT // 手机制造商  
Build.TAGS // 描述build的标签  
Build.TIME  
Build.TYPE // builder类型  
Build.USER  
  
// 运行结果  
/* 
board: unknown 
brand: generic 
cpu abi: armeabi 
device: generic 
display: google_sdk-eng 2.1 ERD79 22607 test-keys 
finger print: generic/google_sdk/generic/:2.1/ERD79/22607:eng/test-keys 
host: genki.mtv.corp.google.com 
id: ERD79 
manufacturer: unknown 
model: google_sdk 
product: google_sdk 
tags: test-keys 
time: 1261185425000 
type: eng 
user: android-build 
*/  
 
Build.BOARD // 主板   
Build.BRAND // android系统定制商   
Build.CPU_ABI // cpu指令集   
Build.DEVICE // 设备参数   
Build.DISPLAY // 显示屏参数   
Build.FINGERPRINT // 硬件名称   
Build.HOST  
Build.ID // 修订版本列表   
Build.MANUFACTURER // 硬件制造商   
Build.MODEL // 版本   
Build.PRODUCT // 手机制造商   
Build.TAGS // 描述build的标签   
Build.TIME  
Build.TYPE // builder类型   
Build.USER  
  
// 运行结果   
/* 
board: unknown 
brand: generic 
cpu abi: armeabi 
device: generic 
display: google_sdk-eng 2.1 ERD79 22607 test-keys 
finger print: generic/google_sdk/generic/:2.1/ERD79/22607:eng/test-keys 
host: genki.mtv.corp.google.com 
id: ERD79 
manufacturer: unknown 
model: google_sdk 
product: google_sdk 
tags: test-keys 
time: 1261185425000 
type: eng 
user: android-build 
*/  
Build.VERSION
Java代码 
// 当前开发代号  
Build.VERSION.CODENAME  
// 源码控制版本号  
Build.VERSION.INCREMENTAL  
// 版本字符串  
Build.VERSION.RELEASE  
// 版本号  
Build.VERSION.SDK  
// 版本号  
Build.VERSION.SDK_INT  
  
// 结果  
/* 
REL 
22607 
2.1 
7 
7 
*/  
  
// Build.VERSION.SDK_INT可与switch搭配用  
switch (Build.VERSION.SDK_INT) {  
case Build.VERSION_CODES.BASE: // 1.0  
    break;  
      
case Build.VERSION_CODES.BASE_1_1: // 1.1  
    break;  
      
case Build.VERSION_CODES.CUPCAKE: // 1.5  
    break;  
      
case Build.VERSION_CODES.CUR_DEVELOPMENT: // current dev version  
    break;  
      
case Build.VERSION_CODES.DONUT: // 1.6  
    break;  
      
case Build.VERSION_CODES.ECLAIR: // 2.0  
    break;  
      
case Build.VERSION_CODES.ECLAIR_0_1: // 2.0.1  
    break;  
      
case Build.VERSION_CODES.ECLAIR_MR1: // 2.1  
    break;  
}  
 
// 当前开发代号   
Build.VERSION.CODENAME  
// 源码控制版本号   
Build.VERSION.INCREMENTAL  
// 版本字符串   
Build.VERSION.RELEASE  
// 版本号   
Build.VERSION.SDK  
// 版本号   
Build.VERSION.SDK_INT  
  
// 结果   
/* 
REL 
22607 
2.1 
7 
7 
*/  
  
// Build.VERSION.SDK_INT可与switch搭配用   
switch (Build.VERSION.SDK_INT) {  
case Build.VERSION_CODES.BASE: // 1.0   
    break;  
      
case Build.VERSION_CODES.BASE_1_1: // 1.1   
    break;  
      
case Build.VERSION_CODES.CUPCAKE: // 1.5   
    break;  
      
case Build.VERSION_CODES.CUR_DEVELOPMENT: // current dev version   
    break;  
      
case Build.VERSION_CODES.DONUT: // 1.6   
    break;  
      
case Build.VERSION_CODES.ECLAIR: // 2.0   
    break;  
      
case Build.VERSION_CODES.ECLAIR_0_1: // 2.0.1   
    break;  
      
case Build.VERSION_CODES.ECLAIR_MR1: // 2.1   
    break;  
}  
分享到:
评论

相关推荐

    Android Build.VERSION.SDK_INT

    Build.VERSION.SDK_INT 代表的操作系统的版本号 ,谷歌的解释大致翻译如下 当前在此硬件上运行的软件的SDK版本装置。当设备启动时,此值从不更改,但它可能当硬件制造商提供OTA更新时增加。 常用来判断sdk版本如下 ...

    1个apk安装另一个apk,安装多个apk

    if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.M && checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[]{Manifest...

    解决沉浸状态栏和华为虚拟键冲突,7.0后状态栏变灰的问题

    if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.KITKAT) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); window.addFlags(WindowManager....

    Android状态栏着色代码

    if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.LOLLIPOP) { // 设置状态栏颜色 getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); getWindow().setStatusBarColor...

    AudioCapture.rar

    if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.M) { String[] permissions = new String[]{Manifest.permission.RECORD_AUDIO,Manifest.permission.WRITE_EXTERNAL_STORAGE}; for (String permission : ...

    sre.rar_jav .land_jav id_jav.land怎么用_jav·land_www.javlibs

    9. **版本兼容性**:由于Android系统的碎片化,开发者需要考虑不同Android版本之间的兼容性,可能需要使用`Build.VERSION.SDK_INT`进行版本检查,并使用适当的API。 10. **测试**:在真实设备或模拟器上进行测试,...

    Android 8.0不能自动安装APK问题的解决方法(完美适配)

    Android8.0之前 未知应用安装权限默认开启,如下图所示 8.0以下手机未知应用安装权限.png Android8.0之后 未知应用安装权限默认关闭,且权限入口隐藏。...if (Build.VERSION.SDK_INT &gt;= Build.VERSION_COD

    Android判断NavigationBar是否显示的方法(获取屏幕真实的高度)

    有些时候,我们需要知道当前手机上是否显示了NavigationBar,也就是屏幕底部的虚拟按键。... if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.JELLY_BEAN_MR1) { Display display = getWindowManager().

    Android沉浸式状态栏实现

    苹果上的UI基本上都是这个效果,然而Android机上的顶部状态栏... if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.KITKAT) { // 透明状态栏 getWindow().addFlags( WindowManager.LayoutParams.FLAG_TRANSLUCENT

    android修改状态栏背景颜色、字体颜色,隐藏状态栏,状态栏透明

    if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.LOLLIPOP) { Window window = activity.getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window....

    Android-Android改变状态栏颜色状态栏透明

    if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.LOLLIPOP) { activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); activity.getWindow().clearFlags...

    通知栏权限设置页面跳转器,根据不同 api 版本和机型跳转到最深可以到的设置页

    } else if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.LOLLIPOP) { context.startActivity(new Intent("android.settings.APP_NOTIFICATION_SETTINGS") .putExtra("app_package", context.getPackageName())...

    toolbar实现沉浸式状态栏

    if (enabled && Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.KITKAT) { // 入侵式状态栏 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_...

    Android悬浮窗使用兼容6.0

    if (requestCode == REQUEST_CODE_DRAW_OVERLAY && Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.M) { if (Settings.canDrawOverlays(this)) { // 权限已授予,可以创建悬浮窗 } else { // 用户拒绝了权限,...

    statusbar.zip

    if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.LOLLIPOP) { window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); } } ``` 4. **自定义颜色**:在Android 5.0及更高版本中,你可以...

    android 状态栏颜色设置

    if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.clearFlags...

    android读取系统参数工程

    3. SDK版本:`Build.VERSION.SDK_INT` 获取当前SDK版本号,用于判断兼容性问题。 4. 制造商:`Build.MANUFACTURER` 返回设备制造商,如“Samsung”。 除了`Build`类,还可以通过其他方式获取更深入的系统参数: 1....

    Android 之 沉浸式状态栏及顶部状态栏背景色设置.txt

    if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.KITKAT) { // 设置状态栏透明 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); // 设置导航栏透明 getWindow().addFlags...

    Android 改变系统状态栏颜色和字体

    if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.LOLLIPOP) { activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); activity.getWindow().clearFlags(Window.FLAG...

    Android获取版本号

    int sdkVersion = Build.VERSION.SDK_INT; ``` 这个值可以用于条件判断,比如检查设备是否支持特定API级别的特性。 3. **获取系统版本名称** 获取用户可见的Android系统版本名称,如"Android 10",可以使用以下...

Global site tag (gtag.js) - Google Analytics