最近做了一个项目中需要使用appWidget,但是RemoteViewsService只支持android3.0以后的版本,因此需要判断当前的OS版本,用来处理用户不能使用appWidget
public class Compatibility {
private Compatibility() {
}
public static int getApiLevel() {
return android.os.Build.VERSION.SDK_INT;
}
//判断当前应用的版本是否大于指定的版本,比如当前版本是9,必须大于11才能使用
public static boolean isCompatible(int apiLevel) {
return android.os.Build.VERSION.SDK_INT >= apiLevel;
}
//判断是否使用的是平板
public static boolean isTabletScreen(Context ctxt) {
boolean isTablet = false;
if (!isCompatible(4)) {
return false;
}
Configuration cfg = ctxt.getResources().getConfiguration();
int screenLayoutVal = 0;
try {
Field f = Configuration.class.getDeclaredField("screenLayout");
screenLayoutVal = (Integer) f.get(cfg);
} catch (Exception e) {
return false;
}
int screenLayout = (screenLayoutVal & 0xF);
//如果android使用的是1.5版和当前的屏幕不兼容
if (screenLayout == 0x3 || screenLayout == 0x4) {
isTablet = true;
}
return isTablet;
}
}