14、到底改如何区分android的平板、电视、手机
16lz
2022-01-08
在没有出现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尺寸则为Pad24 if (screenInches >= 6.0) {25 return true;26 }27 28 return false;29 }30 31
现在的平板手机的出现,更是让方法2不再使用。
回到问题的本质,为什么要区分平板和手机?
区分的目的是为了区分针对不同的设备带来最佳的用户体验,那么对于大于6寸的android设备将其处理为平板是无可厚非的。
更多相关文章
- Amazon 的平板能否威胁 Google
- Textview的maxLines大于1行时,"android:ellipsize="end" 省略号失
- Android(安卓)图形系统之图形缓冲区分配
- Android(安卓)获取进程名称(可以区分内部进程)
- android webview 截图快照
- Android(安卓)2.3系统令人为之兴奋的十大理由
- Google发布App开发准则 为自主Android平板开路
- Android(安卓)3.0,将为对战iPad归来
- Google发布App开发准则 为自主Android平板开路