UiAutomator检测平板电脑与手机

时间:2013-07-12 15:31:38

标签: uiautomator

有没有办法使用Android的uiautomator来检测正在测试的设备是手机还是平板电脑?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我已经弄清楚了。您可以使用函数调用getUiDevice()。getDisplayWidth()和getUiDevice()。getDisplayHeight()来获取设备的宽度和高度。您可以使用ADB来获取像素密度:getprop ro.sf.lcd_density。然后使用公式px = dp *(dpi / 160),您可以生成公式dp = px /(dpi / 160)。最后,根据Android的屏幕尺寸规定如下:小 - 426dp x 320dp,普通 - 470dp x 320dp,大 - 640dp x 480dp,xlarge - 960dp x 720dp,其中大屏幕和xlarge屏幕尺寸是平板电脑:)。享受!

public boolean isTablet() throws Exception {
    double widthpx = getUiDevice().getDisplayWidth();
    double heightpx = getUiDevice().getDisplayHeight();

    Runtime runtime =  Runtime.getRuntime();
    Process process =  runtime.exec("getprop ro.sf.lcd_density");

    InputStream inputStream = process.getInputStream();
    InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

    double dpi = Double.parseDouble(bufferedReader.readLine());

    double widthdp = widthpx / (dpi / 160);
    double heightdp = heightpx / (dpi / 160);

    return (widthdp >= 640 && heightdp >= 480);
}