Для этого вам нужно определить два AppiumDriver , один для приложения sms и другой для другого приложения.
public static AppiumDriver<MobileElement> driver1;
public static AppiumDriver<MobileElement> smsDriver;
Определить DesiredCapabilities для приложения иинициализируйте оба драйвера.
Сначала откройте и выполните вход в систему.
public void startApp1(){
DesiredCapabilities cap1 = new DesiredCapabilities();
cap1.setCapability(MobileCapabilityType.NO_RESET, true);
cap1.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 600);
cap1.setCapability(MobileCapabilityType.DEVICE_NAME, "android device");
cap1.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);
cap1.setCapability("appPackage", "your app1 package name");
cap1.setCapability("appActivity", "your app1 package name");
cap1.setCapability(MobileCapabilityType.AUTOMATION_NAME, "uiautomator2");
driver1 = new AndroidDriver<MobileElement>(new URL("http://127.0.0.1:4732/wd/hub"), caps);
}
После этого запустите смс и выполните действие
public void startApp2(){
DesiredCapabilities cap2 = new DesiredCapabilities();
cap2.setCapability(MobileCapabilityType.NO_RESET, true);
cap2.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 600);
cap2.setCapability(MobileCapabilityType.DEVICE_NAME, "android device");
cap2.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);
cap2.setCapability("appPackage", "your app1 package name");
cap2.setCapability("appActivity", "your app1 package name");
cap2.setCapability(MobileCapabilityType.AUTOMATION_NAME, "uiautomator2");
smsDriver = new AndroidDriver<MobileElement>(new URL("http://127.0.0.1:4732/wd/hub"), caps);
}
Всякий раз, когда вы хотите запустить приложение 1, вы вызываетеМетод startApp1, и когда вы хотите запустить app2, вы можете вызвать метод startApp2.
Теперь, если вы хотите переключаться между двумя недавними приложениями, вы можете использовать следующий код:
String cmd = "adb shell input keyevent 187";
Runtime.getRuntime.exec(cmd);
Runtime.getRuntime.exec(cmd);
Это будетпереключаться между недавними приложениями.
187 - событие ключа для KEYCODE_APP_SWITCH.Если вы дважды используете adb shell keyevent 187 дважды, он переключится на последнее приложение.