您的位置:首页 > 其它

如何区分 使用的是手机还是平板?

2013-01-08 12:25 176 查看
最近解决这个问题:如何区分 使用的是手机还是平板?

网上找到如下的解决办法:

怎样通过程序 判断 用户使用的是手机还是平板电脑?

DisplayMetrics dm;

dm = new DisplayMetrics();

this.getWindowManager().getDefaultDisplay().getMetrics(dm);

// 得到屏幕的宽

int intScreenX = dm.widthPixels;

// 得到屏幕的高

int intScreenY = dm.heightPixels;

这个只能得到分辨率,像素的

像一些 手机 现在就有 960 *640 的了

7寸的平板 有些是 1024*600

而 后面新出来的像 HTC 的 手机,分辨率 已经上 1000 了

分辨率这条路走不通

查 系统版本 也走不通

平板有些还用的 2.3 的

三星手机的 4.0 的都马上出来了

需要的功能其实很简单,就是打开一个网页,如果是 手机,就打开 迷你的,比如 WAP

如果是 平板,估计就打开 WWW 的了

其实要的功能就纳闷简单,判断一下屏幕实际尺寸(英寸),7寸及以上(其实>6 就可以了,看个人)就认为是 平板了,就直接打开大网页了~~~

得到长宽,勾股定理 得到对角线,OK~~~

DisplayMetrics dm;
                dm = new DisplayMetrics();
                getWindowManager().getDefaultDisplay().getMetrics(dm);
                // 得到屏幕的宽(像素)
                int screenX = dm.widthPixels;
                // 得到屏幕的高(像素)
                int screenY = dm.heightPixels;
                // 每英寸的像素点
                int dpi = dm.densityDpi;
                // 得到屏幕的宽(英寸)
                float a = screenX / dpi;
                // 得到屏幕的高(英寸)
                float b = screenY / dpi;
                // 勾股定理
                double screenIn = Math.sqrt((a * a) + (b * b));


通过测量身边的几个设备得出以下参数:

华为mediapad x=800 y=1216 dpi=213 a=3 b=5 screenIn=5.8

小米1s x=480 y=850 dpi=240 a=2 b=3 screenIn=3.6

小米2 x=720 y=1280 dpi=320 a=2 b=4 screenIn=4.47

摩托罗拉MZ606 x=800 y=1232 dpi=160 a=5 b=7 screenIn=8.6

我觉得screenIn 大于等于5就是平板了 应该可以了

有机会拿三星平板测试
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: