diff --git a/docs/回调消息协议.md b/docs/回调消息协议.md index 2dca15d0df..c4c3c3c0dd 100644 --- a/docs/回调消息协议.md +++ b/docs/回调消息协议.md @@ -79,6 +79,8 @@ Todo 已获取到设备唯一码 - `UnsupportedResolution` 分辨率不被支持 +- `ResolutionError` + 分辨率获取错误 #### AllTasksCompleted diff --git a/src/MeoAssistant/Controller.cpp b/src/MeoAssistant/Controller.cpp index b44b300e57..67beee8abf 100644 --- a/src/MeoAssistant/Controller.cpp +++ b/src/MeoAssistant/Controller.cpp @@ -974,7 +974,13 @@ bool asst::Controller::connect(const std::string& adb_path, const std::string& a m_callback(AsstMsg::ConnectionInfo, info, m_callback_arg); - if (m_width < WindowWidthDefault || m_height < WindowHeightDefault) { + if (m_width == 0 || m_height == 0) { + info["what"] = "ResolutionError"; + info["why"] = "Get resolution failed"; + m_callback(AsstMsg::ConnectionInfo, info, m_callback_arg); + return false; + } + else if (m_width < WindowWidthDefault || m_height < WindowHeightDefault) { info["what"] = "UnsupportedResolution"; info["why"] = "Low screen resolution"; m_callback(AsstMsg::ConnectionInfo, info, m_callback_arg); @@ -1062,7 +1068,7 @@ bool asst::Controller::release() { return call_command(m_adb.release).has_value(); } - } +} const std::string& asst::Controller::get_uuid() const { diff --git a/src/MeoAsstGui/Helper/AsstProxy.cs b/src/MeoAsstGui/Helper/AsstProxy.cs index 27a7f5f2e1..79b6ea8efd 100644 --- a/src/MeoAsstGui/Helper/AsstProxy.cs +++ b/src/MeoAsstGui/Helper/AsstProxy.cs @@ -161,17 +161,21 @@ namespace MeoAsstGui private void procConnectInfo(JObject details) { var what = details["what"].ToString(); + var svm = _container.Get(); + var mainModel = _container.Get(); switch (what) { case "Connected": - var svm = _container.Get(); svm.ConnectAddress = details["details"]["address"].ToString(); break; case "UnsupportedResolution": - var mainModel = _container.Get(); mainModel.AddLog("分辨率过低\n请设置为 720p 或更高", "darkred"); break; + + case "ResolutionError": + mainModel.AddLog("分辨率获取失败\n建议重启电脑\n或更换模拟器后再试", "darkred"); + break; } } @@ -631,7 +635,6 @@ namespace MeoAsstGui public bool AsstConnect(ref string error) { - error = ""; var settings = _container.Get(); if (settings.AdbPath == String.Empty || settings.ConnectAddress == String.Empty) @@ -643,11 +646,6 @@ namespace MeoAsstGui } settings.TryToSetBlueStacksHyperVAddress(); - if (settings.ConnectConfig == "LDPlayer") - { - error = "检测到您正在使用雷电模拟器\n由于雷电模拟器过于离谱\nMAA 不推荐使用\n若您遇到任何问题\n建议更换模拟器并再次尝试"; - } - bool ret = AsstConnect(_handle, settings.AdbPath, settings.ConnectAddress, settings.ConnectConfig); // 尝试默认的备选端口 @@ -796,4 +794,4 @@ namespace MeoAsstGui SubTaskCompleted, // 原子任务完成 SubTaskExtraInfo // 原子任务额外信息 }; -} \ No newline at end of file +}