14、到底改如何区分android的平板、电视、手机
在没有出现android电视之前,如果要区分平板和手机有很多种方法:
方法1:看是否有通话功能
1 public boolean isTabletDevice() { 2 TelephonyManager telephony = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE); 3 int type = telephony.getPhoneType(); 4 if (type == TelephonyManager.PHONE_TYPE_NONE) { 5 Log.i("is Tablet!"); 6 } else { 7 Log.i("is phone!"); 8 } 9 return false; 10 }
方法2:通过判断屏幕尺寸,此方法中认为尺寸大于6寸的都是平板(不太靠谱,总有一天会有大于6寸的手机的出现)
1 /** 2 * 检测是平板(电视)还是手机 3 * @return 4 */ 5 private boolean isPad() { 6 7 DisplayMetrics dm = new DisplayMetrics(); 8 getWindowManager().getDefaultDisplay().getMetrics(dm); 9 int width=dm.widthPixels; 10 int height=dm.heightPixels; 11 int dens=dm.densityDpi; 12 double wi=(double)width/(double)dens; 13 double hi=(double)height/(double)dens; 14 double x = Math.pow(wi,2); 15 double y = Math.pow(hi,2); 16 CommonUtils.LogWuwei(tag, "width is "+wi+" height is "+hi); 17 double screenInches = Math.sqrt(x+y); 18 19 CommonUtils.LogWuwei(tag, "screenInches is "+screenInches); 20 21 // MsgUtils.SendSingleMsg(splash.handlerTools,"screenInches is "+screenInches , HandlerUtils.SHOW_NORMAL_TOAST); 22 23 // 大于6尺寸则为Pad 24 if (screenInches >= 6.0) { 25 return true; 26 } 27 28 return false; 29 } 30 31
现在的平板手机的出现,更是让方法2不再使用。
回到问题的本质,为什么要区分平板和手机?
区分的目的是为了区分针对不同的设备带来最佳的用户体验,那么对于大于6寸的android设备将其处理为平板是无可厚非的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?