没有直接的方法可以从 android 获取代号。一种简单的方法是使用
private Field[] fields;
fields = Build.VERSION_CODES.class.getFields();
fields[Build.VERSION.SDK_INT + 1].getName()
但这并不稳定,并导致我ArrayIndexOutOfBoundsExceptioin
在少数设备的生产中崩溃。
即使在生产中,手动创建返回代号的方法对我来说也非常稳定。
String codeName = getVersionCode(Build.VERSION.SDK_INT)
private String getVersionCode(int code){
switch (code){
case 0:{
return "BASE";
}
case 1:{
return "BASE_1_1";
}
case 2:{
return "CUPCAKE";
}
case 3:{
return "CUR_DEVELOPMENT";
}
case 4:{
return "DONUT";
}
case 5:{
return "ECLAIR";
}
case 6:{
return "ECLAIR_0_1";
}
case 7:{
return "ECLAIR_MR1";
}
case 8:{
return "FROYO";
}
case 9:{
return "GINGERBREAD";
}
case 10:{
return "GINGERBREAD_MR1";
}
case 11:{
return "HONEYCOMB";
}
case 12:{
return "HONEYCOMB_MR1";
}
case 13:{
return "HONEYCOMB_MR2";
}
case 14:{
return "ICE_CREAM_SANDWICH";
}
case 15:{
return "ICE_CREAM_SANDWICH_MR1";
}
case 16:{
return "JELLY_BEAN";
}
case 17:{
return "JELLY_BEAN_MR1";
}
case 18:{
return "JELLY_BEAN_MR2";
}
case 19:{
return "KITKAT";
}
case 20:{
return "KITKAT_WATCH";
}
case 21:{
return "L";
}
case 22:{
return "LOLLIPOP";
}
case 23:{
return "LOLLIPOP_MR1";
}
case 24:{
return "MARSHMALLOW";
}
case 25:{
return "NOUGAT";
}
case 26:{
return "OREO";
}
case 27:{
return "OREO";
}
case 28:{
return "PIE";
}
case 29:{
return "Q";
}
case 30:{
return "R";
}
default: {
return "Android";
}
}
}