diff --git a/padsleep.py b/padsleep.py index f06a0af..005fb3f 100644 --- a/padsleep.py +++ b/padsleep.py @@ -274,6 +274,7 @@ class AdbManager: self._screen_on_since: float | None = None self._last_known_screen_on = False self._last_adb_check = 0 # 限频用 + self._prev_ready = False # 前次 ADB 就绪状态,用于检测变化 self._current_serial: str | None = None # 自动检测到的设备串号 self._wireless_addr: str = "" # 当前无线连接地址 (IP:PORT) self._wireless_retries: int = 0 # 无线重连尝试次数 @@ -331,11 +332,15 @@ class AdbManager: self._wireless_addr = addr self._wireless_retries = 0 log.info("无线 ADB 已连接: %s", addr) + if self._audit: + self._audit.log("无线连接", f"已连接: {addr}") return True, result return False, result except Exception as e: self._last_error = str(e) log.error("无线连接失败: %s", e) + if self._audit: + self._audit.log("无线连接失败", f"{addr}: {e}") return False, str(e) def disconnect_wireless(self, addr: str = "") -> bool: @@ -347,6 +352,8 @@ class AdbManager: client = self._ensure_client() client.disconnect(target) log.info("无线 ADB 已断开: %s", target) + if self._audit: + self._audit.log("无线断开", f"已断开: {target}") if target == self._wireless_addr: self._wireless_addr = "" return True @@ -463,6 +470,9 @@ class AdbManager: d.getprop("ro.build.version.sdk") self._device = d self._current_serial = d.serial + if not self._prev_ready and self._audit: + self._audit.log("ADB 设备已连接", f"串号: {d.serial}, 类型: USB") + self._prev_ready = True self._ready = True self._last_error = "" return True @@ -477,6 +487,9 @@ class AdbManager: if d.serial == wireless_addr: d.getprop("ro.build.version.sdk") self._device = d + if not self._prev_ready and self._audit: + self._audit.log("ADB 设备已连接", f"串号: {d.serial}, 类型: 无线") + self._prev_ready = True self._ready = True self._last_error = "" self._wireless_addr = wireless_addr @@ -484,6 +497,9 @@ class AdbManager: # 不在列表中,尝试连接 if self.ensure_wireless_connection(): + if not self._prev_ready and self._audit: + self._audit.log("ADB 设备已连接", f"串号: {wireless_addr}, 类型: 无线") + self._prev_ready = True return True if not devices and not wireless_host: @@ -495,6 +511,11 @@ class AdbManager: except Exception as e: self._last_error = str(e) + # 如果之前是就绪状态但检测失败 → 设备断开 + if self._prev_ready and self._audit: + last_serial = self._current_serial or (self._device.serial if self._device else "未知") + self._audit.log("ADB 设备已断开", f"上次串号: {last_serial}, 原因: {self._last_error}") + self._prev_ready = False self._ready = False self._device = None return False