判断是否小米、华为、魅族系统
2017-11-29 16:48
176 查看
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; } }
相关文章推荐
- 教你如何实现华为,小米,魅族等定制等系统应用间的跳转,权限管理,自启动管理等与定制rom交互(也是基于反编译研究成果有感怕忘记下来)
- Android判断手机是否是小米MIUI系统
- Android 获取手机系统(小米、华为、魅族)
- [Android] 代码获取手机系统类型(小米MIUI、华为EMUI、魅族FLYME)
- Android手机获取相机权限终极大招(兼容国产手机小米华为魅族以及6.0以下系统)
- [Android]判断是否是华为EMUI系统
- Android面试题-机型适配之痛,例如三星、小米、华为、魅族系统问题处理方式
- Android判断手机是否是小米MIUI系统的方法
- 判断是否是64位系统(之前那个是判断是否是64位进程不一样。注意区分)
- iOS判断应用是否获取到系统相机 相册的授权 以及如何请求授权
- 华为OJ--判断两个IP是否属于同一个子网
- 华为OJ:判断两个IP是否属于同一子网
- [华为机试]判断身份证信息是否合法
- 如何判断当前用户是否是系统管理员
- 华为OJ:判断两个IP是否属于同一子网
- 华为oj 之 判断点是否在三角形内
- android 判断应用程序是否为系统应用程序
- 华为机试题:判断一个数字中是否包含两个相同的子串
- js判断客户端是否是IOS系统
- 用代码判断当前系统是否支持某个版本的feature