From 8f57229f2311bb514a2fc488de873db99f2b3bdd Mon Sep 17 00:00:00 2001 From: lxm <1274844347@qq.com> Date: Mon, 8 Sep 2025 16:44:25 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E9=A1=BA=E5=BA=8F=E5=92=8C=E4=BB=A3=E7=A0=81=E6=B3=A8?= =?UTF-8?q?=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构蓝牙管理器和配对控制器的导入顺序,使其更加清晰 更新配对控制器的状态检查逻辑,添加更详细的注释说明 将串行检查改为并行检查以提高效率 --- lib/data/services/ble_manager.dart | 11 +++--- .../controllers/pairing_controller.dart | 36 ++++++++++--------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/lib/data/services/ble_manager.dart b/lib/data/services/ble_manager.dart index 4d7ce9fcb..470896f95 100644 --- a/lib/data/services/ble_manager.dart +++ b/lib/data/services/ble_manager.dart @@ -1,13 +1,14 @@ import 'dart:async'; -import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'dart:convert'; -import '../../data/models/appconfig.dart'; +import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:get_storage/get_storage.dart'; import 'package:get/get.dart'; import 'package:ble_service/ble_service.dart'; -import '../../core/utils/logger.dart'; -import 'package:get_storage/get_storage.dart'; -import 'dart:convert'; import 'package:agent_service/agent_service.dart'; + +import '../../data/models/appconfig.dart'; +import '../../core/utils/logger.dart'; import 'bluetooth_manager.dart'; import 'language_manager.dart'; diff --git a/lib/modules/pairing/controllers/pairing_controller.dart b/lib/modules/pairing/controllers/pairing_controller.dart index 8131d1e01..ea70d6b6d 100644 --- a/lib/modules/pairing/controllers/pairing_controller.dart +++ b/lib/modules/pairing/controllers/pairing_controller.dart @@ -1,17 +1,18 @@ +import 'dart:io'; +import 'dart:async'; + import 'package:app_settings/app_settings.dart'; -import 'package:voitrans/data/models/appconfig_model.dart'; -import '/data/models/appconfig.dart'; -import '/data/models/user_Info.dart'; -import '/data/services/network/api.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; -import 'dart:async'; import 'package:permission_handler/permission_handler.dart'; import 'package:url_launcher/url_launcher.dart'; import '../../../routes/app_routes.dart'; import '../../../core/utils/logger.dart'; -import 'dart:io'; +import '/data/models/appconfig_model.dart'; +import '/data/models/appconfig.dart'; +import '/data/models/user_Info.dart'; +import '/data/services/network/api.dart'; import '../../../data/services/bluetooth_manager.dart'; import '../../../data/services/ble_manager.dart'; import '../../../core/utils/permission_util.dart'; @@ -347,7 +348,7 @@ class PairingController extends GetxController with WidgetsBindingObserver { void _handleBleStateChange(int state) { if (_currentState.value == PairingState.waitingBle) { if (state == 2) { - // BLE已连接 + // 2代表BLE已连接 _bleTimeoutTimer?.cancel(); _transition(PairingState.completed); } @@ -501,32 +502,33 @@ class PairingController extends GetxController with WidgetsBindingObserver { /// 检查当前状态并决定下一步 void _checkCurrentStatus() async { try { - // 1. 检查蓝牙状态 + // 1. 并行检查蓝牙状态、权限、设备连接 final results = await Future.wait([ - _checkBluetoothState(), // 检查蓝牙状态 - _checkPermissions(), // 检查权限 - _bluetoothManager.refreshDeviceConnection(), // 刷新设备连接 + _checkBluetoothState(), // 检查蓝牙是否开启 + _checkPermissions(), // 检查蓝牙相关权限 + _bluetoothManager.refreshDeviceConnection(), // 刷新设备连接状态 ]); final isBluetoothOk = results[0] as bool; final arePermissionsOk = results[1] as bool; + //蓝牙没开 if (!isBluetoothOk) { _setError( ErrorType.bluetoothOff, 'connectDeepSoundViaSystemBluetooth'.tr); return; } - // 2. 检查权限 + //权限不够 if (!arePermissionsOk) { _setError(ErrorType.noPermission, 'pleaseGrantNecessaryPermissions'.tr); return; } - // 3. 先刷新设备连接状态,确保获取最新的连接信息 - await _bluetoothManager.refreshDeviceConnection(); + // 2. 先刷新设备连接状态,确保获取最新的连接信息 + //await _bluetoothManager.refreshDeviceConnection(); - // 4. 检查经典蓝牙连接 + // 3. 检查经典蓝牙连接 final classicDevice = _bluetoothManager.currentDevice; if (classicDevice == null) { _transition(PairingState.waitingClassic); @@ -543,7 +545,7 @@ class PairingController extends GetxController with WidgetsBindingObserver { } } - /// 新增一个辅助方法来检查蓝牙状态 + /// 检查蓝牙状态是否开启 Future _checkBluetoothState() async { return _bluetoothManager.bluetoothState != 'off'; } @@ -726,7 +728,7 @@ class PairingController extends GetxController with WidgetsBindingObserver { // 检查设备名称是否包含 DeepSound 或 DeapSound final deviceName = device.name; DBProduct? product; - // 检查是否已有BLE绑定的设备 + /// 检查是否已有BLE绑定的设备 if (AppConfig.config.products.isNotEmpty) { final match = AppConfig.config.products.where(