From 084ed59ad508d515a9278158dd331acec60ceda3 Mon Sep 17 00:00:00 2001 From: butubb <1422726308@qq.com> Date: Fri, 4 Sep 2026 12:47:09 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B9=B3=E5=8F=B0=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=8F=AA=E8=AF=BB=E7=AB=AF=E7=82=B9=20/api/screen/size?= =?UTF-8?q?=E2=80=94=E2=80=94=E8=BF=94=E5=9B=9E=E8=AE=BE=E5=A4=87=E5=B1=8F?= =?UTF-8?q?=E5=B9=95=E5=8E=9F=E7=94=9F=E5=88=86=E8=BE=A8=E7=8E=87=EF=BC=88?= =?UTF-8?q?u2=20window=5Fsize=EF=BC=89=EF=BC=8C=E4=BE=9B=20MCP=20=E6=88=AA?= =?UTF-8?q?=E5=9B=BE=E5=9D=90=E6=A0=87=E6=8D=A2=E7=AE=97=EF=BC=88=E6=88=AA?= =?UTF-8?q?=E5=9B=BE=E6=98=AF=E7=BC=A9=E6=94=BE=E5=9B=BE=EF=BC=8C=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E9=9C=80=E5=8E=9F=E7=94=9F=E5=9D=90=E6=A0=87=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/monitor.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/web/monitor.py b/web/monitor.py index 52f33c8..dcfca73 100644 --- a/web/monitor.py +++ b/web/monitor.py @@ -542,6 +542,25 @@ def api_screen_text(): return jsonify({"ok": False, "error": f"输入失败: {e}"}), 503 +@bp.route("/api/screen/size") +@perm_required(PERM_DEVICES) +def api_screen_size(): + """屏幕原生分辨率(只读,供 MCP 坐标换算:截图是缩放图,操作需原生坐标)。 + + 返回 {ok, width, height}(如 1080x2400);离线/不可达 → 503。 + """ + serial = request.args.get("serial", "") + if not serial: + return jsonify({"ok": False, "error": "缺少 serial"}), 400 + try: + d = _screen_get_device(serial) + w, h = d.window_size() + return jsonify({"ok": True, "width": w, "height": h}) + except Exception as e: + _screen_invalidate(serial) + return jsonify({"ok": False, "error": f"获取分辨率失败: {e}"}), 503 + + # ================== API:应用管理(APK 上传/安装)================== def _current_focus_pkg(serial):