# -*- coding: utf-8 -*- """删掉安卓端残留的局域网搜索代码。 用户要求:"不要有原老版本那些搜索局域网什么的" 刚才删了按钮,但底下还留着: * 首次启动自动 startDiscovery()(250-257) * startDiscovery() 方法本身 * showFound() 方法(列出搜到的电脑) 以及可能变成孤儿的 connectToFound()。 删完重新编译,让编译器告诉我们还有谁在引用。 """ from __future__ import annotations import re import sys from pathlib import Path MAIN = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote\android\src" r"\com\lanremote\watch\MainActivity.java") def drop_block(text: str, header_pattern: str) -> tuple: """删掉一个方法:从包含 header_pattern 的那行开始, 按花括号配平找到方法结束。""" lines = text.splitlines(keepends=True) start = None for index, line in enumerate(lines): if re.search(header_pattern, line): start = index break if start is None: return text, False depth = 0 seen_open = False end = None for index in range(start, len(lines)): depth += lines[index].count("{") if "{" in lines[index]: seen_open = True depth -= lines[index].count("}") if seen_open and depth <= 0: end = index break if end is None: return text, False # 往前把紧挨着的注释行也带走 while start > 0 and lines[start - 1].strip().startswith("//"): start -= 1 # 往后把空行也带走 while end + 1 < len(lines) and lines[end + 1].strip() == "": end += 1 del lines[start:end + 1] return "".join(lines), True def main() -> int: text = MAIN.read_text(encoding="utf-8") # 1. 首次启动自动搜索 auto = text auto = auto.replace( """ if (store.devices().isEmpty()) { statusView.postDelayed(new Runnable() { @Override public void run() { startDiscovery(); } }, 600); } """, "", 1) if auto != text: print(" 删掉首次启动自动搜索") text = auto else: print(" [跳过] 首次启动自动搜索 —— 没找到") # 2. startDiscovery / showFound for pattern, label in ((r"private void startDiscovery\(\)", "startDiscovery()"), (r"private void showFound\(", "showFound()")): text, done = drop_block(text, pattern) print(f" {'删掉' if done else '[跳过]'} {label}") # 3. 如果 connectToFound 没人用了也删掉 uses = len(re.findall(r"connectToFound\s*\(", text)) if uses <= 1: text, done = drop_block(text, r"private void connectToFound\(") print(f" {'删掉' if done else '[跳过]'} connectToFound()(剩余引用 {uses})") else: print(f" connectToFound() 还有 {uses} 处引用,保留") MAIN.write_text(text, encoding="utf-8", newline="\n") # 复核 left = [i + 1 for i, line in enumerate(text.splitlines()) if "startDiscovery" in line or "showFound" in line] print(f" 残留引用行: {left if left else '无'}") return 0 if __name__ == "__main__": sys.exit(main())