1、判断手机的Rom类型

public class OSUtils {    public static final String ROM_MIUI = "MIUI";    public static final String ROM_EMUI = "EMUI";    public static final String ROM_FLYME = "FLYME";    public static final String ROM_OPPO = "OPPO";    public static final String ROM_SMARTISAN = "SMARTISAN";    public static final String ROM_VIVO = "VIVO";    public static final String ROM_QIKU = "QIKU";    private static final String KEY_VERSION_MIUI = "ro.miui.ui.version.name";    private static final String KEY_VERSION_EMUI = "ro.build.version.emui";    private static final String KEY_VERSION_OPPO = "ro.build.version.opporom";    private static final String KEY_VERSION_SMARTISAN = "ro.smartisan.version";    private static final String KEY_VERSION_VIVO = "ro.vivo.os.version";    private static String sName;    private static String sVersion;    public static boolean isEmui() {        return check(ROM_EMUI);    }    public static boolean isMiui() {        return check(ROM_MIUI);    }    public static boolean isVivo() {        return check(ROM_VIVO);    }    public static boolean isOppo() {        return check(ROM_OPPO);    }    public static boolean isFlyme() {        return check(ROM_FLYME);    }    public static boolean is360() {        return check(ROM_QIKU) || check("360");    }    public static boolean isSmartisan() {        return check(ROM_SMARTISAN);    }    public static String getName() {        if (sName == null) {            check("");        }        return sName;    }    public static String getVersion() {        if (sVersion == null) {            check("");        }        return sVersion;    }    public static boolean check(String rom) {        if (sName != null) {            return sName.equals(rom);        }        if (!TextUtils.isEmpty(sVersion = getProp(KEY_VERSION_MIUI))) {            sName = ROM_MIUI;        } else if (!TextUtils.isEmpty(sVersion = getProp(KEY_VERSION_EMUI))) {            sName = ROM_EMUI;        } else if (!TextUtils.isEmpty(sVersion = getProp(KEY_VERSION_OPPO))) {            sName = ROM_OPPO;        } else if (!TextUtils.isEmpty(sVersion = getProp(KEY_VERSION_VIVO))) {            sName = ROM_VIVO;        } else if (!TextUtils.isEmpty(sVersion = getProp(KEY_VERSION_SMARTISAN))) {            sName = ROM_SMARTISAN;        } else {            sVersion = Build.DISPLAY;            if (sVersion.toUpperCase().contains(ROM_FLYME)) {                sName = ROM_FLYME;            } else {                sVersion = Build.UNKNOWN;                sName = Build.MANUFACTURER.toUpperCase();            }        }        return sName.equals(rom);    }    public static String getProp(String name) {        String line = null;        BufferedReader input = null;        try {            Process p = Runtime.getRuntime().exec("getprop " + name);            input = new BufferedReader(new InputStreamReader(p.getInputStream()), 1024);            line = input.readLine();            input.close();        } catch (IOException ex) {            return null;        } finally {            if (input != null) {                try {                    input.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }        return line;    }}

更多相关文章

  1. android O 手机关机流程与时间
  2. android手机状态解释,比如android.os.Build.VERSION.SDK
  3. android 手机判断是否在充电 如断电自动打电话提醒功能
  4. 获取android手机信息
  5. Android 获取手机的IMEI等设备信息
  6. 如何区别Android手机卡三大运营商
  7. Android之获取手机相关信息
  8. 淘宝(阿里百川)手机客户端开发日记第一篇 android 主框架搭建(一
  9. Android手机客户端与Servlet交换数据(by quqi99)

随机推荐

  1. Oracle 定义者权限与调用者权限(AUTHID CU
  2. 【DB笔试面试591】在Oracle中,什么是星型
  3. 【DB笔试面试601】在Oracle中,给出下面执
  4. Oracle的簇与簇表
  5. 【DB笔试面试765】在Oracle中,什么是OGG?它
  6. 【DB笔试面试728】在Oracle中,如何修改RAC
  7. oracle 从执行计划的预估行数看执行计划
  8. Oracle分批提交DML
  9. 在Oracle中,如何定时删除归档日志文件?
  10. Citrix MCS桌面模板更新