Android 对于uiautomator,takeScreenshot始终返回false
我正在尝试在Galaxy S4和Kindle HDX 8.9上自动“截图”,我正在使用以下代码Android 对于uiautomator,takeScreenshot始终返回false,android,automation,android-uiautomator,uidevice,Android,Automation,Android Uiautomator,Uidevice,我正在尝试在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..."); ANYPATH我尝试的值: /data/lo
if(!(getUiDevice().takeScreenshot(new File("ANYPATH"))))
System.out.println("False: Screenshot not taken!!");
else
System.out.println("Gangnam Style...");
ANYPATH我尝试的值:
- /data/local/tmp/(适用于两种设备)。不确定在设备上的何处可以找到此文件夹,我尝试了此操作,因为我将jar推到了此位置
- /sdcard/pictures/(适用于Kindle HDX)
- /storage/simulated/0(适用于Galaxy S4)
Rumit我也遇到了同样的问题,转而使用adb screencap函数。我想这不是一个答案,而是一个解决办法:
Process process = Runtime.getRuntime().exec("screencap -p " + <filePath>);
process.waitFor();
processprocess=Runtime.getRuntime().exec(“screencap-p”+);
process.waitFor();
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);
}
我们可以通过以下命令查看该文件
$adb shell ls-l/sdcard/文件名我也遇到了这个问题。在调试工具的帮助下,我发现这是一个权限问题。我通过在清单中添加存储写入权限解决了这个问题。如果您使用的是6.0+设备,您还必须在运行时手动授权对测试应用程序的权限