1. 程式人生 > >判斷是否小米、華為、魅族系統

判斷是否小米、華為、魅族系統

public class SystemUtil {
    public static final String SYS_EMUI = "sys_emui";
    public static final String SYS_MIUI = "sys_miui";
    public static final String SYS_FLYME = "sys_flyme";
    public static final String SYS_OTHER = "sys_other";
    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 sysType = SharedPreferencesUtil.getString(SysApplication.context,"sysType",""); if (TextUtils.isEmpty
(sysType)) { try { sysType = SYS_OTHER; 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) { sysType = 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) { sysType = SYS_EMUI;//華為 } else if (getMeizuFlymeOSFlag().toLowerCase().contains("flyme")) { sysType = SYS_FLYME;//魅族 } SharedPreferencesUtil.putString(SysApplication.context,"sysType",sysType); } catch (IOException e) { e.printStackTrace(); return sysType; } } return sysType; } 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; } }