我正在为我的跨应用程序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/