kunyashaw博客主页 关注kunyashaw新博客 关于kunyashaw 转到底部

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设备将其处理为平板是无可厚非的。

 

posted @   kunyashaw  阅读(1125)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
回到顶部
点击右上角即可分享
微信分享提示