public class AndroidPUtils {    /**     * 判断是否是华为刘海屏     */    public static boolean hasNotchInScreen(Context context) {        boolean ret = false;        try {            ClassLoader cl = context.getClassLoader();            Class HwNotchSizeUtil = cl.loadClass("com.huawei.android.util.HwNotchSizeUtil");            Method get = HwNotchSizeUtil.getMethod("hasNotchInScreen");            ret = (boolean) get.invoke(HwNotchSizeUtil);        } catch (ClassNotFoundException e) {            Log.e("test", "hasNotchInScreen ClassNotFoundException");        } catch (NoSuchMethodException e) {            Log.e("test", "hasNotchInScreen NoSuchMethodException");        } catch (Exception e) {            Log.e("test", "hasNotchInScreen Exception");        } finally {            return ret;        }    }    //获取华为刘海的高宽    public static int[] getNotchSize(Context context) {        int[] ret = new int[]{0, 0};        try {            ClassLoader cl = context.getClassLoader();            Class HwNotchSizeUtil = cl.loadClass("com.huawei.android.util.HwNotchSizeUtil");            Method get = HwNotchSizeUtil.getMethod("getNotchSize");            ret = (int[]) get.invoke(HwNotchSizeUtil);        } catch (ClassNotFoundException e){            Log.e("test", "getNotchSize ClassNotFoundException");        }        catch (NoSuchMethodException e) {            Log.e("test", "getNotchSize NoSuchMethodException");        }        catch (Exception e) {            Log.e("test", "getNotchSize Exception"); }        finally {            return ret;        }    }    /**     *  Oppo     */    public static boolean hasNotchInScreenAtOppo(Context context){        return context.getPackageManager().hasSystemFeature("com.oppo.feature.screen.heteromorphism");    }    /**     * VIVO     */    public static final int NOTCH_IN_SCREEN_VOIO=0x00000020;//是否有凹槽    public static final int ROUNDED_IN_SCREEN_VOIO=0x00000008;//是否有圆角    public static boolean hasNotchInScreenAtVoio(Context context){        boolean ret = false;        try {            ClassLoader cl = context.getClassLoader();            Class FtFeature = cl.loadClass("com.util.FtFeature");            Method get = FtFeature.getMethod("isFeatureSupport",int.class);            ret = (boolean) get.invoke(FtFeature,NOTCH_IN_SCREEN_VOIO);        } catch (ClassNotFoundException e)        { Log.e("test", "hasNotchInScreen ClassNotFoundException"); }        catch (NoSuchMethodException e)        { Log.e("test", "hasNotchInScreen NoSuchMethodException"); }        catch (Exception e)        { Log.e("test", "hasNotchInScreen Exception"); }        finally        { return ret; }    }}

更多相关文章

  1. 华为P30安卓内核编译android kernel build
  2. 华为面试题:Android 的优势与不足
  3. Android中为PopupWindow设置半透明背景的方案(兼容华为手机)
  4. android 华为Mate 10 spinner 点击区域bug
  5. 华为发布全新IDE:DevCro Studio,Facebook正自研OS系统!去除Google安
  6. Nexus 6P 外媒评测:华为造出了最好的 Android 手机?
  7. Android第三课 联调华为手机
  8. 华为手机Android Studio开发不显示Logcat解决办法
  9. 华为十年资深架构师推荐最强Android 架构剖析文档

随机推荐

  1. android 屏幕保持唤醒 不锁屏
  2. Android工程的自动创建,编译并生成apk
  3. Android MTK Launcher3 替换桌面图标
  4. 设置TextView超过一定长度后显示省略号
  5. android 通过uri启动Activity
  6. Android获取所有安装APP信息的详细代码
  7. android从网站获取json接口数据并放置到s
  8. Android(安卓)之Notification 用法
  9. android 退出机制
  10. Android(安卓)常用开发框架