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"