0

Android の uiautomator を使用して、テスト対象のデバイスが電話かタブレットかを検出する方法はありますか?

前もって感謝します。

4

1 に答える 1

0

私はそれを理解しました。関数呼び出し getUiDevice().getDisplayWidth() および getUiDevice().getDisplayHeight() を使用して、デバイスの幅と高さを取得できます。ADB を使用してピクセル密度を取得できます: getprop ro.sf.lcd_density. 次に、式 px = dp * (dpi / 160) を使用して、式 dp = px / (dpi / 160) を生成できます。最後に、Android による画面サイズは次のように指定されています: small - 426dp x 320dp、normal - 470dp x 320dp、large - 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);
}
于 2013-07-12T16:20:06.690 に答える