最近华为手机手机更新鸿蒙系统,开发过程中很对针对会为手机的代码都会出现bug,所以如何判断鸿蒙系统很重要:
下面就是我解决的办法
private static final String HARMONY_OS = "harmony";
//判断是否为鸿蒙
public static boolean isHarmonyOSa() {
try {
Class clz = Class.forName("com.huawei.system.BuildEx");
Method method = clz.getMethod("getOsBrand");
ClassLoader classLoader = clz.getClassLoader();
System.out.println("classLoader: " + classLoader);
//BootClassLoader的parent为null
if (classLoader != null && classLoader.getParent() == null) {
//return method.invoke(clz).toString();//返回获取的名称
//****返回是否是鸿蒙系统 自行注释并将方法返回值改为boolean
return HARMONY_OS.equals(method.invoke(clz));
}
} catch (ClassNotFoundException e) {
} catch (NoSuchMethodException e) {
} catch (Exception e) {
}
return false;
}
亲测有效