|
|
@ -84,10 +84,25 @@ class EnhancedAdbService: |
|
|
device_infos = [] |
|
|
device_infos = [] |
|
|
for d in devices: |
|
|
for d in devices: |
|
|
try: |
|
|
try: |
|
|
status = DeviceStatus(d.status) |
|
|
# 尝试将字符串状态转换为枚举 |
|
|
|
|
|
if hasattr(d.status, 'value'): |
|
|
|
|
|
status_str = d.status.value |
|
|
|
|
|
else: |
|
|
|
|
|
status_str = str(d.status) |
|
|
|
|
|
|
|
|
|
|
|
# 尝试转换为已知的状态枚举 |
|
|
|
|
|
try: |
|
|
|
|
|
status = DeviceStatus(status_str) |
|
|
except ValueError: |
|
|
except ValueError: |
|
|
status = DeviceStatus.DISCONNECTED |
|
|
# 如果状态不在已知枚举中,使用默认状态 |
|
|
|
|
|
logger.warning(f"未知设备状态: {status_str}, 使用默认状态", serial=d.serial) |
|
|
|
|
|
status = DeviceStatus.OFFLINE |
|
|
|
|
|
|
|
|
device_infos.append(DeviceInfo(serial=d.serial, status=status)) |
|
|
device_infos.append(DeviceInfo(serial=d.serial, status=status)) |
|
|
|
|
|
except Exception as e: |
|
|
|
|
|
logger.error(f"处理设备信息时出错: {d.serial}, 错误: {e}") |
|
|
|
|
|
# 跳过有问题的设备 |
|
|
|
|
|
continue |
|
|
logger.info("获取设备列表成功", device_count=len(device_infos)) |
|
|
logger.info("获取设备列表成功", device_count=len(device_infos)) |
|
|
return device_infos |
|
|
return device_infos |
|
|
except (AdbConnectionError, AdbProtocolError) as e: |
|
|
except (AdbConnectionError, AdbProtocolError) as e: |
|
|
@ -126,7 +141,7 @@ class EnhancedAdbService: |
|
|
logger.info("设备事件", |
|
|
logger.info("设备事件", |
|
|
present=event.present, |
|
|
present=event.present, |
|
|
serial=event.serial, |
|
|
serial=event.serial, |
|
|
status=event.status.value) |
|
|
status=event.status) |
|
|
await self._handle_device_event(event) |
|
|
await self._handle_device_event(event) |
|
|
except asyncio.CancelledError: |
|
|
except asyncio.CancelledError: |
|
|
logger.info("设备监控被取消") |
|
|
logger.info("设备监控被取消") |
|
|
@ -139,9 +154,9 @@ class EnhancedAdbService: |
|
|
async def _handle_device_event(self, event: DeviceEvent) -> None: |
|
|
async def _handle_device_event(self, event: DeviceEvent) -> None: |
|
|
"""处理设备事件""" |
|
|
"""处理设备事件""" |
|
|
if event.present: |
|
|
if event.present: |
|
|
logger.info("设备连接", serial=event.serial, status=event.status.value) |
|
|
logger.info("设备连接", serial=event.serial, status=event.status) |
|
|
else: |
|
|
else: |
|
|
logger.info("设备断开", serial=event.serial, status=event.status.value) |
|
|
logger.info("设备断开", serial=event.serial, status=event.status) |
|
|
|
|
|
|
|
|
async def list_forward_ports(self) -> List[ForwardInfo]: |
|
|
async def list_forward_ports(self) -> List[ForwardInfo]: |
|
|
"""获取端口转发列表""" |
|
|
"""获取端口转发列表""" |
|
|
|