释放双眼,带上耳机,听听看~!
之前,自己写了获取相册图片的代码,在自己手机上测试没有问题,不过小米手机却出现问题。在网上搜索资料,发现小米手机与其他德 处理不同。所以今天写一下判断手机系统的内容。其实很简单。
public static final String SYS_EMUI = "sys_emui";
public static final String SYS_MIUI = "sys_miui";
public static final String SYS_FLYME = "sys_flyme";
private static final String KEY_MIUI_VERSION_CODE = "ro.miui.ui.version.code";
private static final String KEY_MIUI_VERSION_NAME = "ro.miui.ui.version.name";
private static final String KEY_MIUI_INTERNAL_STORAGE = "ro.miui.internal.storage";
private static final String KEY_EMUI_API_LEVEL = "ro.build.hw_emui_api_level";
private static final String KEY_EMUI_VERSION = "ro.build.version.emui";
private static final String KEY_EMUI_CONFIG_HW_SYS_VERSION = "ro.confg.hw_systemversion";
public static String getSystem(){
String SYS;
try {
Properties prop= new Properties();
prop.load(new FileInputStream(new File(Environment.getRootDirectory(), "build.prop")));
if(prop.getProperty(KEY_MIUI_VERSION_CODE, null) != null
|| prop.getProperty(KEY_MIUI_VERSION_NAME, null) != null
|| prop.getProperty(KEY_MIUI_INTERNAL_STORAGE, null) != null){
SYS = SYS_MIUI;//小米
}else if(prop.getProperty(KEY_EMUI_API_LEVEL, null) != null
||prop.getProperty(KEY_EMUI_VERSION, null) != null
||prop.getProperty(KEY_EMUI_CONFIG_HW_SYS_VERSION, null) != null){
SYS = SYS_EMUI;//华为
}else if(getMeizuFlymeOSFlag().toLowerCase().contains("flyme")){
SYS = SYS_FLYME;//魅族
};
} catch (IOException e){
e.printStackTrace();
return SYS;
}
return SYS;
}
public static String getMeizuFlymeOSFlag() {
return getSystemProperty("ro.build.display.id", "");
}
private static String 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) {
}
return defaultValue;
}
主要是获取build.prop文件的内容,然后获取的信息与那个手机的系统信息想符合,就是哪种手机。判断的依据是prop.getProperty(),里面的参数每个手机都不一样,只要一个手机的返回值不为null,那么就可以判断手机类型。
android 判断手机为小米就讲完了。
就这么简单。