Код ниже работает нормально, когда я выполняю команду оболочки adb. Но если я пробовал с apk, это не работает. Любая помощь?
public void onStart() {
super.onStart();
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle bundle = new Bundle();
bundle.putString("Test", "value");
try {
startInstrumentation(new ComponentName("com.example.mypro.uiauto.test", "android.support.test.runner.AndroidJUnitRunner"),null, bundle);
} catch (Exception e) {
}
}
});
}
@Test
public void pressHome() {
UiDevice uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
uiDevice.pressHome();
}
Я попал в такую же ситуацию в прошлом году в августе. Пока вы не можете запускать инструментальные тесты из APK. Вот ссылка Руководство для Android. Потому что в этом случае вы также можете получить доступ к пользовательскому интерфейсу других приложений. Это будет проблемой безопасности в ОС Android в целом, когда одно приложение открывает другое приложение и делает случайные вещи, которые представляют угрозу.
Вы можете выполнять инструментальные тесты либо через командную строку/терминал, либо только через студию Android. По ссылке, которой я поделился, есть столбец с заголовком «Запуск тестов UI Automator на устройстве или эмуляторе».