对于 uiautomator,takeScreenshot 始终返回 false

rum*_*tel 3 automation android uidevice android-uiautomator

我正在尝试在 Galaxy S4 和 Kindle HDX 8.9 上自动执行“截取屏幕截图”,并且我正在使用以下代码。

if(!(getUiDevice().takeScreenshot(new File("ANYPATH"))))
         System.out.println("False: Screenshot not taken!!");
     else
         System.out.println("Gangnam Style...");
Run Code Online (Sandbox Code Playgroud)

我尝试过的ANYPATH值:

  • /data/local/tmp/(对于两种设备)。不确定在设备上的哪里可以找到这个文件夹,我尝试了这个,因为我将我的罐子推到了这个位置。
  • /sdcard/图片/(适用于 Kindle HDX)
  • /storage/emulated/0(适用于 Galaxy S4)

无论我尝试哪种路径,条件始终返回false,并且不会在任何设备(实际设备而不是模拟器)上截取屏幕截图。我不确定我在这里缺少什么?

我只是遵循http://developer.android.com/tools/help/uiautomator/UiDevice.html#takeScreenshot(java.io.File)中的语法

问候,鲁米特

Raj*_*esh 5

takeScreenshot() 方法适用于 4.2 及以上 Android 版本设备。

如果设备版本合适,则使用以下代码。

File path = new File("/sdcard/filename.png");
int SDK_VERSION = android.os.Build.VERSION.SDK_INT; 
if (SDK_VERSION >= 17) {
    mUiAutomatorTestCase.getUiDevice().takeScreenshot(PATH);
}
Run Code Online (Sandbox Code Playgroud)

我们可以通过以下命令查看该文件。

$ adb shell ls -l /sdcard/文件名