public static booleanisN7() {
return "Nexus 7".equals(android.os.Build.MODEL);
}
- 首先进入cmd,然后输入adb shell 命令进入adb shell (前提:adb必须要配置到系统环境变量中)
shell@mx4pro:/ $
- 进入system目录
cd system
shell@mx4pro:/system $
- 查看系统属性
cat build.prop
# begin build properties
# autogenerated by buildinfo.sh
ro.build.cta=noncta
ro.build.id=KTU84P
ro.build.mask.id=4.4.4-1423716396_wo
ro.build.args=
ro.build.inside.id=4.4.4-20150212124636
ro.build.version.incremental=m76.Flyme_OS_4.2.2.1.20150212124636
ro.build.version.sdk=19
ro.build.version.codename=REL
ro.build.version.release=4.4.4
- 筛选包含Flyme字符的属性,因为既然是魅族操作系统,Flyme这个词最能代表它的属性
cat build.prop | grep Flyme
ro.build.version.incremental=m76.Flyme_OS_4.2.2.1.20150212124636
ro.build.display.id=Flyme OS 4.2.2.1U
ro.build.description=meizu_mx4pro-user 4.4.4 KTU84P m76.Flyme_OS_4.2.2.1.2015021
2124636 release-keys
ro.build.fingerprint=Meizu/meizu_mx4pro/mx4pro:4.4.4/KTU84P/m76.Flyme_OS_4.2.2.1
.20150212124636:user/release-keys
shell@mx4pro:/system $
- 换一个其他的安装有魅族操作系统设备,重复上面的步骤。最终会发现ro.build.display.id这个属性可以当做一个魅族操作系统唯一的特性(因为这个属性值几乎都会包含Flyme字段,这正是我们想要的)。我们就可以用这个属性来与其他系统进行区分。
- 最后一步,当然是怎么取出这个属性值了。
4、通过反射调用获取系统属性
//判断是魅族操作系统 public static booleanisMeizuFlymeOS() { return getMeizuFlymeOSFlag().toLowerCase().contains("flyme"); } /*** 获取魅族系统操作版本标识 */ public staticString getMeizuFlymeOSFlag() { return getSystemProperty("ro.build.display.id", ""); } private staticString getSystemProperty(String key, String defaultValue) { try{ Class<?> clz = Class.forName("android.os.SystemProperties"); Method get = clz.getMethod("get", String.class, String.class); return(String)get.invoke(clz, key, defaultValue); } catch(Exception e) { } returndefaultValue; } //下面是小米操作系统的一些相关方法/*** 获取MIUI版本名 */ public staticString getMIUIVersionName() { return getSystemProperty("ro.miui.ui.version.name", null); } //MIUI v5版本 public static booleanisV5(){ if("V5".equalsIgnoreCase(getMIUIVersionName())){ return true; } return false; }
为了方便,封装一个反射调用系统SystemProperties类的工具类
public classSystemPropertiesReflect {
public staticString get(String key, String value) {
try{
Method method = Class.forName("android.os.SystemProperties")
.getMethod("get", String.class, String.class);
return (String) method.invoke(null, key, value);
} catch(Exception e) {
}
returnvalue;
}
public static long getLong(String key, longvalue) {
try{
Method method = Class.forName("android.os.SystemProperties")
.getMethod("getLong", String.class, long.class);
return (Long) method.invoke(null, key, value);
} catch(Exception e) {
}
returnvalue;
}
}