android 获取刘海高度,Android各厂商的刘海屏高度获取工具类
public final classNotchScreenUtil {/*** 华为start*/
//判断是否是华为刘海屏
public static booleanhasNotchInScreenAtHuawei(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);
Log.d("NotchScreenUtil", "this Huawei device has notch in screen?"+ret);
}catch(ClassNotFoundException e) {
Log.e("NotchScreenUtil", "hasNotchInScreen ClassNotFoundException", e);
}catch(NoSuchMethodException e) {
Log.e("NotchScreenUtil", "hasNotchInScreen NoSuchMethodException", e);
}catch(Exception e) {
Log.e("NotchScreenUtil", "hasNotchInScreen Exception", e);
}returnret;
}/*** 获取华为刘海的高
*@paramcontext
*@return
*/
public static intgetNotchSizeAtHuawei(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("NotchScreenUtil", "getNotchSize ClassNotFoundException");
}catch(NoSuchMethodException e) {
Log.e("NotchScreenUtil", "getNotchSize NoSuchMethodException");
}catch(Exception e) {
Log.e("NotchScreenUtil", "getNotchSize Exception");
}return ret[1];
}/*** 华为end*/
/*** Oppo start*/
public static booleanhasNotchInScreenAtOppo(Context context) {boolean hasNotch = context.getPackageManager().hasSystemFeature("com.oppo.feature.screen.heteromorphism");
Log.d("NotchScreenUtil", "this OPPO device has notch in screen?"+hasNotch);returnhasNotch;
}public static intgetNotchSizeAtOppo() {return 80;
}/*** Oppo end*/
/*** vivo start*/
public static final int NOTCH_IN_SCREEN_VOIO = 0x00000020;//是否有凹槽
public static final int ROUNDED_IN_SCREEN_VOIO = 0x00000008;//是否有圆角
public static booleanhasNotchInScreenAtVivo(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);
Log.d("NotchScreenUtil", "this VIVO device has notch in screen?" +ret);
}catch(ClassNotFoundException e) {
Log.e("NotchScreenUtil", "hasNotchInScreen ClassNotFoundException", e);
}catch(NoSuchMethodException e) {
Log.e("NotchScreenUtil", "hasNotchInScreen NoSuchMethodException", e);
}catch(Exception e) {
Log.e("NotchScreenUtil", "hasNotchInScreen Exception", e);
}returnret;
}public static intgetNotchSizeAtVivo(Context context){return dp2px(context, 32);
}/*** vivo end*/
/*** dp转px
*@paramcontext
*@paramdpValue
*@return
*/
private static int dp2px(Context context, intdpValue) {return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpValue,context.getResources().getDisplayMetrics());
}/*** 获取手机厂商
*
*@return手机厂商*/
public final static int DEVICE_BRAND_OPPO = 0x0001;public final static int DEVICE_BRAND_HUAWEI = 0x0002;public final static int DEVICE_BRAND_VIVO = 0x0003;
@SuppressLint("DefaultLocale")public static intgetDeviceBrand() {
String brand=android.os.Build.BRAND.trim().toUpperCase();if (brand.contains("HUAWEI")) {
Log.d("device brand", "HUAWEI");returnDEVICE_BRAND_HUAWEI;
}else if (brand.contains("OPPO")) {
Log.d("device brand", "OPPO");returnDEVICE_BRAND_OPPO;
}else if (brand.contains("VIVO")) {
Log.d("device brand", "VIVO");returnDEVICE_BRAND_VIVO;
}return 0;
}
}
android 获取刘海高度,Android各厂商的刘海屏高度获取工具类相关推荐
- Android基于Retrofit2.0 +RxJava 封装的超好用的RetrofitClient工具类(六)
csdn :码小白 原文地址: http://blog.csdn.net/sk719887916/article/details/51958010 RetrofitClient 基于Retrofit2 ...
- php对接小程序获取表单,PHP实现微信小程序用户授权的工具类
事先准备工作 1.申请一个小程序,申请地址:传送门 2.仔细阅读小程序的用户授权登陆官方文档:<用户授权登陆的流程> 3.仔细阅读微信用户数据解密的相关文档:<用户数据解密说明文档& ...
- java mediatype属性_基于ServletRequest实现请求获取内容类型的媒体类型MediaType、字符集Charset的工具类ContentTypeUtil...
一.源码说明 基于springframework的org.springframework.http.MediaType通过ServletRequest对象分别获取到媒体类型.字符集类型,具体工具类Co ...
- cgm 转jpg java_获取图片,音频,视频,压缩包文件类型的工具类
1.[代码][Java]代码 /* * Copyright (C) 2013 Simple Explorer * * This program is free software; you can re ...
- ( 持续更新,目前含 200+ 工具类 ) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。
DevUtils GitHub About ( 持续更新,目前含 200+ 工具类 ) Roadmap DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 ...
- Android开发常用工具类集合
转载自:https://blog.csdn.net/xiaoyi_tdcq/article/details/52902844 Android开发常用工具类集合 android开发中为了避免重复造轮子, ...
- 分享一些收集整理的一些常用Android万能工具类
尊重原创 https://github.com/l123456789jy/Lazy 内容包括 AnimationUtils 动画工具类 AppUtils APP相关信息工具类 AssetDataba ...
- android 字体像素转换工具类_Android中px与dip,sp与dip等的转换工具类
Android中px与dip,sp与dip等的转换工具类 功能 通常在代码中设置组件或文字大小只能用px,通过这个工具类我们可以把dip(dp)或sp为单位的值转换为以px为单位的值而保证大小不变.方 ...
- android刘海屏高度适配,Android刘海屏的适配
这里主要是介绍一下Android P中刘海屏的适配以及Android P之前的适配.为什么要分开呢?因为Android P之前官方还没提供API来进行适配,都是由各家厂商来提供适配方案的. 1.And ...
- android获取操作系统版本号,Android 获取手机的厂商、型号、Android系统版本号、IMEI、当前系统语言等工具类...
1.获取手机制造厂商 2.获取手机型号 3.获取手机系统当前使用的语言 4.获取Android系统版本号 5.获取手机IMEI串号 6.获取手机中的语言列表 SystemUtil类 1. /** 2. ...
最新文章
- android上传图片崩溃,导致安卓手机死机的照片拍摄者表示这张照片是无意之举...
- 聊天机器人之需求分析和流程介绍
- 无盘服务器2个dhcp,无盘 dhcp 服务器配置
- python3 requests 动态网页post提交数据_Python爬虫三:动态网页爬虫
- 用dict读取和写入表格_用Python快速处理表格,让你快人一步两步三四部
- mysql子查询sysdate_Oracle向MySQL 迁移相关事项
- 前台为html后台是asp在vs2012中建立什么,Asp.net中后台*.cs与前台JS脚本之间相互调用的几点心得...
- 特斯拉副总裁陶琳:在中国采集的数据都将存在中国
- java 将 ResultSet 转化为 json格式
- bert性能优化之——用另一种方式整合多头注意力
- Local Database Overview for Windows Phone
- Django新手图文教程
- C语言编程软件的下载安装、使用和写代码
- GTG-Shapley: Efficient and Accurate Participant Contribution Evaluation in Federated Learning 读后总结
- 微信公众平台卡劵功能接入指南
- 教育培训机构拼团招生小程序公众号
- Unity Editor 编辑器扩展 九 Gizmos
- mybatis在配置mapper.xml时出现 tag name excepted 问题
- python获取手机号码归属地_基于Python的免费手机号码归属地查询
- matlab程序是什么格式,科学网—Matlab中的P代码文件 - 杨笔锋的博文
热门文章
- 病毒virus - 拓扑排序
- CRF as RNN
- cad角度命令怎么输入_新手入门,学习CAD必须掌握,教你使用标注命令,绘图效率翻一倍...
- python的“end=”介绍
- nginx 正向代理http和https
- CPU消耗高,tps低问题排查分析
- scala中case class与一般的class的区别
- vs2010 无法启动程序 系统找不到指定的文件
- MySQL——临时表
- 滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(8月4日)...