From 49f053ee4c7aa2156f5e61475eff93801e31a2cc Mon Sep 17 00:00:00 2001 From: lxm <1274844347@qq.com> Date: Mon, 18 Aug 2025 21:16:41 +0800 Subject: [PATCH] =?UTF-8?q?fix(agent):=20=E4=BF=AE=E5=A4=8D=E7=94=B5?= =?UTF-8?q?=E8=AF=9D=E6=A8=A1=E5=BC=8F=E9=80=80=E5=87=BA=E6=97=B6=E6=9C=AA?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=E9=80=9A=E8=AF=9D=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在agent_controller中添加exit_interaction函数调用时的电话模式检查,确保退出交互时同时结束通话 fix(home): 优化设备连接时的电池信息刷新逻辑 1. 设备连接成功后立即刷新电池信息 2. 根据连接状态控制电池信息定时刷新 3. 移除不必要的电池信息日志输出 chore: 回滚版本号至1.0.8+20 --- .../agent/controllers/agent_controller.dart | 6 +++++ .../home/controllers/home_controller.dart | 23 +++++++++++++++---- pubspec.yaml | 2 +- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/lib/modules/agent/controllers/agent_controller.dart b/lib/modules/agent/controllers/agent_controller.dart index 8d4f67654..ef8cf5ac1 100644 --- a/lib/modules/agent/controllers/agent_controller.dart +++ b/lib/modules/agent/controllers/agent_controller.dart @@ -701,6 +701,12 @@ class AgentController extends GetxController { final functionName = event.data['name'] ?? ''; final arguments = event.data['arguments'] ?? ''; // debugPrint('Fultter 开始调用 mcp: $functionName, $arguments'); + if (functionName == 'exit_interaction') { + if (isPhoneCallMode.value) { + endPhoneCall(); //退出语音交互,同时退出打电话模式 + } + } + break; case AgentServiceEventType.functionCallResult: diff --git a/lib/modules/home/controllers/home_controller.dart b/lib/modules/home/controllers/home_controller.dart index 18252c4cd..83a2330e2 100644 --- a/lib/modules/home/controllers/home_controller.dart +++ b/lib/modules/home/controllers/home_controller.dart @@ -103,6 +103,10 @@ class HomeController extends GetxController { Future refreshDeviceConnection() async { await _checkConnectionStatus(); + // 如果设备已连接,立即刷新电池信息 + if (_isFullyConnected.value) { + await _refreshBatteryInfo(); + } } void rescanDevices() { @@ -137,6 +141,16 @@ class HomeController extends GetxController { if (!wasConnected && isNowConnected) { await _bleManager.fetchDeviceInfo(); + // 连接成功后立即刷新一次电池信息 + Future.delayed(const Duration(milliseconds: 500), () { + _refreshBatteryInfo(); + }); + } + // 根据连接状态控制定时器 + if (isNowConnected) { + _startBatteryRefreshTimer(); // 连接时启动定时器 + } else { + _stopBatteryRefreshTimer(); // 断开时停止定时器 } } @@ -146,6 +160,7 @@ class HomeController extends GetxController { if (_isFullyConnected.value) { _isFullyConnected.value = false; _isFullyConnected.refresh(); + _stopBatteryRefreshTimer(); // 发生错误时停止定时器 update(); } } @@ -298,18 +313,18 @@ class HomeController extends GetxController { return; } - Logger.d(_tag, '开始刷新电池信息...'); + //Logger.d(_tag, '开始刷新电池信息...'); // 通过BLE管理器获取最新的电池信息 final success = await _bleManager.fetchBatteryInfo(); if (success) { - Logger.d(_tag, '电池信息刷新请求发送成功'); + //Logger.d(_tag, '电池信息刷新请求发送成功'); } else { - Logger.w(_tag, '电池信息刷新请求发送失败'); + //Logger.w(_tag, '电池信息刷新请求发送失败'); } } catch (e) { - Logger.e(_tag, '刷新电池信息时发生错误: $e'); + //Logger.e(_tag, '刷新电池信息时发生错误: $e'); } } } diff --git a/pubspec.yaml b/pubspec.yaml index 04aa9127f..ba0626a03 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: voitrans description: "Voitrans - AI Voice Assistant." publish_to: "none" -version: 1.0.9+20 +version: 1.0.8+20 environment: sdk: ">=3.3.0 <4.0.0"