您的位置:首页 > 移动开发 > Android开发

14、到底改如何区分android的平板、电视、手机

2015-02-26 20:57 246 查看
在没有出现android电视之前,如果要区分平板和手机有很多种方法:

方法1:看是否有通话功能

public boolean isTabletDevice() {
TelephonyManager telephony = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
int type = telephony.getPhoneType();
if (type == TelephonyManager.PHONE_TYPE_NONE) {
Log.i("is Tablet!");
} else {
Log.i("is phone!");
}
return false;
}


方法2:通过判断屏幕尺寸,此方法中认为尺寸大于6寸的都是平板(不太靠谱,总有一天会有大于6寸的手机的出现)

/**
* 检测是平板(电视)还是手机
* @return
*/
private boolean isPad() {

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width=dm.widthPixels;
int height=dm.heightPixels;
int dens=dm.densityDpi;
double wi=(double)width/(double)dens;
double hi=(double)height/(double)dens;
double x = Math.pow(wi,2);
double y = Math.pow(hi,2);
CommonUtils.LogWuwei(tag, "width is "+wi+" height is "+hi);
double screenInches = Math.sqrt(x+y);

CommonUtils.LogWuwei(tag, "screenInches is "+screenInches);

// MsgUtils.SendSingleMsg(splash.handlerTools,"screenInches is "+screenInches , HandlerUtils.SHOW_NORMAL_TOAST);

// 大于6尺寸则为Pad
if (screenInches >= 6.0) {
return true;
}

return false;
}


现在的平板手机的出现,更是让方法2不再使用。

回到问题的本质,为什么要区分平板和手机?

区分的目的是为了区分针对不同的设备带来最佳的用户体验,那么对于大于6寸的android设备将其处理为平板是无可厚非的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: