天天看点

android 判断手机为小米

        之前,自己写了获取相册图片的代码,在自己手机上测试没有问题,不过小米手机却出现问题。在网上搜索资料,发现小米手机与其他德 处理不同。所以今天写一下判断手机系统的内容。其实很简单。

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 判断手机为小米就讲完了。

就这么简单。

继续阅读