我正在开发一款需要均衡器的Android媒体播放器。但是,均衡器仅适用于Gingerbread及以上版本,但cyanogenmod 6已修改audioflinger作为均衡器,因此我想检测操作系统版本。
答案 0 :(得分:4)
您可以阅读os.version
属性并与之匹配:
String version = System.getProperty("os.version");
if (version.contains("cyanogenmod")) {
isCyanogenMode = true;
}
在我的设备上,os.version
为2.6.37.6-cyanogenmod-01509-g8913be8
。
答案 1 :(得分:4)
截至今天,cyanogenmod的内核在cyanogenmod
中不包含System.getProperty("os.version");
个关键字,类似于3.0.64-CM-g9d16c8a
。所以我写了这个函数。
private boolean isCyanogenMod(PackageManager pm) {
boolean isCyanogenMod = false;
String version = System.getProperty("os.version");
BufferedReader reader = null;
try {
if (version.contains("cyanogenmod") || pm.hasSystemFeature("com.cyanogenmod.android")) {
isCyanogenMod = true;
}
else {
// This does not require root
reader = new BufferedReader(new FileReader("/proc/version"), 256);
version = reader.readLine();
if (version.contains("cyanogenmod")) {
isCyanogenMod = true;
}
}
} catch (Exception e) {
e.printStackTrace();
}
finally {
if(reader != null) {
try { reader.close(); } catch (IOException e) { }
}
}
return isCyanogenMod;
}
答案 2 :(得分:2)
这是一个老问题,但我最近想出了一个更好的解决方案。
GET