ol_*_*_er 1036
如Android文档中所述,手机运行的SDK级别(整数)可用于:
android.os.Build.VERSION.SDK_INT
与此int对应的android.os.Build.VERSION_CODES类在类中.
代码示例:
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP){
// Do something for lollipop and above versions
} else{
// do something for phones running an SDK before lollipop
}
Run Code Online (Sandbox Code Playgroud)
编辑:此SDK_INT自Donut(Android 1.6/API4)开始提供,因此请确保您的应用程序与Cupcake(Android 1.5/API3)不兼容时使用它或您的应用程序将崩溃(感谢Programmer Bruce的精确度) .
Com*_*ode 132
String manufacturer = Build.MANUFACTURER;
String model = Build.MODEL;
int version = Build.VERSION.SDK_INT;
String versionRelease = Build.VERSION.RELEASE;
Log.e("MyActivity", "manufacturer " + manufacturer
+ " \n model " + model
+ " \n version " + version
+ " \n versionRelease " + versionRelease
);
Run Code Online (Sandbox Code Playgroud)
E/MyActivity: manufacturer ManufacturerX
model SM-T310
version 19
versionRelease 4.4.2
Run Code Online (Sandbox Code Playgroud)
Fal*_*65o 79
Build.VERSION.RELEASE;
Run Code Online (Sandbox Code Playgroud)
这将为您提供您的版本的实际数字; 又名2.3.3或2.2.使用Build.VERSION.SDK_INT的问题是,如果你有一个root的手机或自定义ROM,你可能有一个非标准的操作系统(也就是我的android运行2.3.5),当使用Build.VERSION.SDK_INT时将返回null所以无论使用标准的Android版本,Build.VERSION.RELEASE都能正常工作!
要使用它,你可以这样做;
String androidOS = Build.VERSION.RELEASE;
Run Code Online (Sandbox Code Playgroud)
nik*_*3ro 31
考虑到所有说法,这里是用于检测设备是否具有Froyo或更新Android OS(2.2+)的代码:
public static boolean froyoOrNewer() {
// SDK_INT is introduced in 1.6 (API Level 4) so code referencing that would fail
// Also we can't use SDK_INT since some modified ROMs play around with this value, RELEASE is most versatile variable
if (android.os.Build.VERSION.RELEASE.startsWith("1.") ||
android.os.Build.VERSION.RELEASE.startsWith("2.0") ||
android.os.Build.VERSION.RELEASE.startsWith("2.1"))
return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
显然,如果您需要通用检查器,可以修改if条件以考虑1.0和1.5版本的Android.你可能会得到这样的东西:
// returns true if current Android OS on device is >= verCode
public static boolean androidMinimum(int verCode) {
if (android.os.Build.VERSION.RELEASE.startsWith("1.0"))
return verCode == 1;
else if (android.os.Build.VERSION.RELEASE.startsWith("1.1")) {
return verCode <= 2;
} else if (android.os.Build.VERSION.RELEASE.startsWith("1.5")) {
return verCode <= 3;
} else {
return android.os.Build.VERSION.SDK_INT >= verCode;
}
}
Run Code Online (Sandbox Code Playgroud)
如果代码不适合您,请告诉我.
Kha*_*aha 23
试试这个:
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) {
// only for gingerbread and newer versions
}
Run Code Online (Sandbox Code Playgroud)
android.os.Build.VERSION.SDK应该为您提供API级别的值.你可以在android文档中轻松找到从api级到android版的映射.我相信,8是2.2,7是2.1,依此类推.
Android 1.6及更高版本支持 SDK.INT
所有版本均支持 SDK
所以我这样做:
String sdk_version_number = android.os.Build.VERSION.SDK;
Run Code Online (Sandbox Code Playgroud)
知道了。它使用类getApplicationInfo()的方法Context。
| 归档时间: |
|
| 查看次数: |
321988 次 |
| 最近记录: |