Как запустить UiAutomator из MainActivity?

Я внедряю 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 инструментария возвращается нулевым. Есть идеи, как запустить UiAutomator из основного приложения?

1 ответ

Это невозможно. Посмотрите этот ответ на похожий вопрос:

UiAutomator 2.0 опирается на инструментарий, который доступен только при запуске теста с использованием инструмента am Instrument. Обычные (не тестовые) приложения не имеют доступа к инструментарию.

/questions/14675204/myi-mozhem-ispolzovat-uiautomator-v-prilozheniyah-dlya-android/14675213#14675213

Другие вопросы по тегам