2013-07-12 3 views
0

Есть ли способ использовать uiautomator от Android, чтобы определить, является ли тестируемое устройство телефоном или планшетом?UiAutomator Detect Tablet vs Phone

Заранее спасибо.

ответ

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, где большие и большие размеры экрана - таблетки :). Наслаждайтесь!

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); 
}