问题:如何来判断设备是否搭载了鸿蒙系统?同时,如果是在鸿蒙OS中,如何获取底部虚拟导航栏的高度?
问题追加: 还是一名Android开发者,最近在研究如何获取当前运行环境是否是鸿蒙系统。我的思路是通过类名去获取鸿蒙SDK JAVA API的Class对象,通过判断Class对象是否存在判断的,但是我调用了鸿蒙开发文档上的大多数Java API,发现即使在非鸿蒙的华为手机上也能获取到,比如ohos.aafwk.ability.Ability。但唯独源码里的ohos.utils.system.SystemCapability获取不到,只有搭载鸿蒙系统的手机能获取到。 另外,如果已经在鸿蒙OS中了,如何获取底部虚拟导航栏的高度?
回答: 1、可用下面两个类判断: fun isHarmonyOs(): Boolean { return try { Class.forName("ohos.app.Application") Class.forName("ohos.system.version.SystemVersion") true } catch (e: ClassNotFoundException) { false } } 其它可参考:鸿蒙HarmonyOS如何获取系统版本、当前设备类型和手机型号。 2、用如下代码: /** * 获取状态栏高度 * * @return */ public static int getStatusBarHeight(Context context) { int result = 0; Point point1 = new Point(); Point point2 = new Point(); Display display = DisplayManager.getInstance().getDefaultDisplay(context).get(); display.getSize(point1); display.getRealSize(point2); result = (int) (point2.getPointY() - point1.getPointY()); return result; } |