Android判断系统是不是FlymeEMUIMIUI
Posted 七色音阶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android判断系统是不是FlymeEMUIMIUI相关的知识,希望对你有一定的参考价值。
package com.liyunlong.common.utils;
import android.os.Build;
import android.os.Environment;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.Collection;
import java.util.Enumeration;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
/**
* 设备系统辅助类
*
* @author liyunlong
* @date 2017/5/27 11:36
*/
public final class OSHelper
private static final String KEY_EMUI_VERSION_CODE = "ro.build.version.emui";
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";
public static boolean isFlyme()
try
final Method method = Build.class.getMethod("hasSmartBar");
return method != null;
catch (final Exception e)
return false;
public static boolean isEMUI()
return isPropertiesExist(KEY_EMUI_VERSION_CODE);
public static boolean isMIUI()
return isPropertiesExist(KEY_MIUI_VERSION_CODE, KEY_MIUI_VERSION_NAME, KEY_MIUI_INTERNAL_STORAGE);
private static boolean isPropertiesExist(String... keys)
if (keys == null || keys.length == 0)
return false;
try
BuildProperties properties = BuildProperties.newInstance();
for (String key : keys)
String value = properties.getProperty(key);
if (value != null)
return true;
return false;
catch (IOException e)
return false;
private static final class BuildProperties
private final Properties properties;
private BuildProperties() throws IOException
properties = new Properties();
// 读取系统配置信息build.prop类
properties.load(new FileInputStream(new File(Environment.getRootDirectory(), "build.prop")));
public boolean containsKey(final Object key)
return properties.containsKey(key);
public boolean containsValue(final Object value)
return properties.containsValue(value);
public Set<Map.Entry<Object, Object>> entrySet()
return properties.entrySet();
public String getProperty(final String name)
return properties.getProperty(name);
public String getProperty(final String name, final String defaultValue)
return properties.getProperty(name, defaultValue);
public boolean isEmpty()
return properties.isEmpty();
public Enumeration<Object> keys()
return properties.keys();
public Set<Object> keySet()
return properties.keySet();
public int size()
return properties.size();
public Collection<Object> values()
return properties.values();
public static BuildProperties newInstance() throws IOException
return new BuildProperties();
以上是关于Android判断系统是不是FlymeEMUIMIUI的主要内容,如果未能解决你的问题,请参考以下文章