Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 以编程方式触发UIAutomator测试脚本_Android_Android Testing_Android Uiautomator - Fatal编程技术网

Android 以编程方式触发UIAutomator测试脚本

Android 以编程方式触发UIAutomator测试脚本,android,android-testing,android-uiautomator,Android,Android Testing,Android Uiautomator,我们使用UIAutomator实现自动化 要运行UIAutomator测试脚本,我们使用USB或Wifiadb从命令提示符编译脚本,它将在android设备上运行 UiAutomator脚本在编译后将以jar格式出现。 我们将在设备中推送jar,并触发测试脚本。 在“adb shell uiautomator runtestTestPackage.jar”中启动测试脚本的命令 它正在使用正常的adb连接 但是在我们的例子中,我们必须在没有任何adb连接的情况下启动测试脚本 因此,我们尝试使用此j

我们使用
UIAutomator
实现自动化

要运行
UIAutomator
测试脚本,我们使用
USB
Wifi
adb从命令提示符编译脚本,它将在android设备上运行

UiAutomator
脚本在编译后将以jar格式出现。 我们将在设备中推送jar,并触发测试脚本。 在“adb shell uiautomator runtest
TestPackage.jar
”中启动测试脚本的命令

它正在使用正常的adb连接

但是在我们的例子中,我们必须在没有任何adb连接的情况下启动测试脚本

因此,我们尝试使用此java代码在设备中以编程方式传递命令

        try {

        StringBuffer output = new StringBuffer();
        Process p = Runtime.getRuntime().exec(params[0]);
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                p.getInputStream()));
        String line = "";
        while ((line = reader.readLine()) != null) {
            output.append(line + "\n");
            p.waitFor();
        }
    } catch (IOException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
执行后,我们将得到以下异常:

java.lang.securityException:longMsg=您没有调用RegisterUIteStatAutomationService所需的android.permission.RETRIEVE\u WINDOW\u内容

如果我们使用adb连接从命令提示符运行脚本,它就可以工作了。但是,如果我们以编程方式尝试该命令,就会出现此异常

我们了解到,通过启用
RETRIEVE\u WINDOW\u CONTENT
权限,上述问题可以在根安卓设备中解决。但我们希望此脚本在非根目录设置上运行

有人能帮我解释一下这个安全许可问题吗


如何解决此问题?

我认为该类型的权限仅授予系统应用程序。有时检查此项,您将获得帮助。我想知道它如何在adb连接下正常运行??因为如果从
adb
运行,会分配不同的权限。另一方面,想象一下如果设备上的任何应用程序都可以启动UiAutomator测试会发生什么。