我检查了http://developer.android.com/reference/android/os/Build.html中的很多字段。
但是我无法清楚地获得特定设备使用CyanogenMod的信息。
这就是我得到的:
NETWORK_TYPE="0"
SDK_INT="10"
CODENAME="REL"
INCREMENTAL="eng.android.20110308.014205"
RELEASE="2.3.3"
SDK="10"
Build.BOARD=bravo
BOOTLOADER=0.93.0001
BRAND=htc_wwe
CPU_ABI=armeabi-v7a
CPU_ABI2=armeabi
DEVICE=bravo
DISPLAY=GRI40
FINGERPRINT=htc_wwe/htc_bravo/bravo/bravo:2.2/FRF91/226611:user/release-keys
HARDWARE=bravo
HOST=giulio-desktop
ID=FRF91
MANUFACTURER=HTC
MODEL=HTC Desire
PRODUCT=htc_bravo
RADIO=unknown
TAGS=release-keys
TIME=0
TYPE=userdebug
USER=android
NETWORK_TYPE="0"
SDK_INT="10"
CODENAME="REL"
INCREMENTAL="eng.shade.20110307.195429"
RELEASE="2.3.3"
SDK="10"
Build.BOARD=mahimahi
BOOTLOADER=0.35.0017
BRAND=google
CPU_ABI=armeabi-v7a
CPU_ABI2=armeabi
DEVICE=passion
DISPLAY=GRI40
FINGERPRINT=google/passion/passion:2.3.3/GRI40/102588:user/release-keys
HARDWARE=mahimahi
HOST=toxygene
ID=GRI40
MANUFACTURER=HTC
MODEL=Nexus One
PRODUCT=passion
RADIO=unknown
TAGS=test-keys
TIME=0
TYPE=user
USER=shade
答案 0 :(得分:6)
PackageManager.hasSystemFeature("com.cyanogenmod.android")
会更加一致。
答案 1 :(得分:3)
从系统属性中读取它会容易得多:
String version = System.getProperty("os.version");
if (version.contains("cyanogenmod")) {
isCyanogenMode = true;
}
在我的设备上,os.version
为2.6.37.6-cyanogenmod-01509-g8913be8
或者,您也可以依赖Build.USER常量,该常量带有组装构建的人的名称。对于CyanogenMod,这通常是“阴影”(Steve Kondik又名Cyanogen的另一个昵称)。
还有一个特殊属性ro.modversion
,但据我所知,您需要访问SystemProperties内部类才能以编程方式读取它。
答案 2 :(得分:1)
在我的设备上System.getProperty("os.version")
类似3.0.64-CM-g9d16c8a
。检查版本号中的cyanogenmod
不再起作用。我在此post中添加了更多详细信息。
答案 3 :(得分:0)
我发现最简单的方法是读取文件/ proc / version,其中包含有关内核版本的信息。
使用cyanogenmod的手机可以提供类似的内容:
Linux version 2.6.37.2-cyanogenmod-01149-g8cdf03e
读取此文件不需要root权限(runnung uname -r
确实如此)。
答案 4 :(得分:0)
最终用户一直在交换内核,因此使用System.getProperty(“os.version”)或从/ proc / version读取并不是设备是否正在运行cyanogenmod的良好指标。让我重新说一下,仅使用那些作为指标并不是一个好主意。您需要使用多种方法。正如@kakopappa在他的另一篇文章中指出他在读os.version和/ proc / version时你也应该检查
android.os.Build.HOST
根据我的经验,其中包含cyanogenmod 9次中的10次。为了安全起见,你也想要使用其他方法,因为HOST变量可以通过build.prop更改 - > ro.build.host