fix:上位机

1.修改ios的结束应用的逻辑
master
李杰应 2024-08-05 18:23:20 +08:00
parent e87632e127
commit 1608e29d27
1 changed files with 33 additions and 19 deletions

View File

@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import io.appium.java_client.AppiumDriver;
import net.northking.cctp.upperComputer.config.MobileProperty;
import net.northking.cctp.upperComputer.deviceManager.common.PyMobileDevice;
import net.northking.cctp.upperComputer.deviceManager.screen.IosScreenResponseThread;
import net.northking.cctp.upperComputer.entity.Attachment;
import net.northking.cctp.upperComputer.entity.DebuggerDeviceInfo;
@ -18,6 +19,7 @@ import net.northking.cctp.upperComputer.service.thread.IOSDeviceInfoByPackageThr
import net.northking.cctp.upperComputer.deviceManager.IOSDeviceManager;
import net.northking.cctp.upperComputer.utils.HttpUtils;
import net.northking.cctp.upperComputer.utils.ScreenShotUtils;
import net.northking.cctp.upperComputer.utils.ios.MacIosHandleHelper;
import org.apache.commons.lang3.StringUtils;
import org.openqa.selenium.WebElement;
import org.slf4j.Logger;
@ -319,28 +321,40 @@ public class IosDebuggerServiceImpl extends AbstractDebuggerService {
@Override
public boolean terminateApp(String deviceId, String appPackage) {
String[] cmd = {"tidevice", "-u", deviceId, "kill", appPackage};
ProcessBuilder builder = new ProcessBuilder(Arrays.asList(cmd)).redirectErrorStream(true);
Process process = null;
try {
process = builder.start();
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
String line = null;
while ((line = in.readLine()) != null) {
stringBuilder.append(line);
}
String result = stringBuilder.toString();
if (result.trim().startsWith("Kill pid:")) {
logger.debug("手机【{}】应用【{}】已关闭,关闭消息:{}", deviceId, appPackage, result);
return true;
boolean flag = deviceHandleHelper instanceof MacIosHandleHelper;
if (flag) {
PyMobileDevice.SpecificAppleDeviceInfo specificAppleDeviceInfo = IOSDeviceManager.getInstance().getSpecificAppleDeviceInfo(deviceId);
boolean killFlag = PyMobileDevice.getInstance().pkill(specificAppleDeviceInfo, appPackage);
if (killFlag) {
logger.info("设备{},执行关闭应用 {} 命令成功", deviceId, appPackage);
} else {
logger.debug("手机【{}】应用【{}】关闭失败,关闭消息:{}", deviceId, appPackage, result);
logger.info("设备{},执行关闭应用 {} 命令失败", deviceId, appPackage);
}
return killFlag;
} else {
String[] cmd = {"tidevice", "-u", deviceId, "kill", appPackage};
ProcessBuilder builder = new ProcessBuilder(Arrays.asList(cmd)).redirectErrorStream(true);
Process process = null;
try {
process = builder.start();
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
String line = null;
while ((line = in.readLine()) != null) {
stringBuilder.append(line);
}
String result = stringBuilder.toString();
if (result.trim().startsWith("Kill pid:")) {
logger.debug("手机【{}】应用【{}】已关闭,关闭消息:{}", deviceId, appPackage, result);
return true;
} else {
logger.debug("手机【{}】应用【{}】关闭失败,关闭消息:{}", deviceId, appPackage, result);
return false;
}
} catch (IOException e) {
logger.error("手机【{}】应用【{}】关闭出现问题",deviceId,appPackage,e);
return false;
}
} catch (IOException e) {
logger.error("手机【{}】应用【{}】关闭出现问题",deviceId,appPackage,e);
return false;
}
}