我正在为我的跨应用程序UI自动化应用程序实现UiAutomator。我把它放在AndroidTest类下。当我运行测试类时,它可以正常工作,但是我需要从应用程序中运行它(不必将其连接到计算机)。
我找到了此解决方案,但无法正常工作:

 private void runTests() {
    Bundle arguments = new Bundle();
    final String packageName = getPackageName();
    final List<InstrumentationInfo> list =
            getPackageManager().queryInstrumentation(packageName, 0);
    if (list.isEmpty()) {
        return;
    }
    final InstrumentationInfo instrumentationInfo = list.get(0);
    final ComponentName componentName =
            new ComponentName(instrumentationInfo.packageName,
                    instrumentationInfo.name);

    arguments.putString("package",  "my package");
    startInstrumentation(componentName,null,arguments);
   }


显然,检测的UiAutomator参数返回null。知道如何从主应用程序运行UiAutomator吗?

最佳答案

这是不可能的。看到类似问题的答案:


  UiAutomator 2.0依赖于Instrumentation,仅当您使用am instrument运行测试时才可用....常规(非测试)应用程序无权访问Instrumentation。


https://stackoverflow.com/a/29419540/1999084

关于java - 如何从MainActivity运行UiAutomator?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35461654/

10-09 04:03