diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index 05d554d39..75a82d84d 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -59,6 +59,8 @@
193d0a2b1757c41cfa557ea8e8f21c33
LSApplicationQueriesSchemes
+ App-Prefs
+ prefs
weixin
weixinULAPI
weixinURLParamsAPI
diff --git a/lib/modules/devices/controllers/devices_controller.dart b/lib/modules/devices/controllers/devices_controller.dart
index 1beadea7a..66ff69211 100644
--- a/lib/modules/devices/controllers/devices_controller.dart
+++ b/lib/modules/devices/controllers/devices_controller.dart
@@ -57,6 +57,7 @@ class DevicesController extends GetxController {
User.instance.removeUserDevice(device.id);
_bleManager.clearPairedDevices();
_bleManager.disconnect();
+ await Future.delayed(const Duration(seconds: 1));
Get.toNamed(Routes.pairing);
return;
} else {
diff --git a/lib/modules/pairing/controllers/pairing_controller.dart b/lib/modules/pairing/controllers/pairing_controller.dart
index d267211f3..dedb8fbbb 100644
--- a/lib/modules/pairing/controllers/pairing_controller.dart
+++ b/lib/modules/pairing/controllers/pairing_controller.dart
@@ -16,6 +16,7 @@ import 'dart:io';
import '../../../data/services/bluetooth_manager.dart';
import '../../../data/services/ble_manager.dart';
import '../../../core/utils/permission_util.dart';
+import 'package:url_launcher/url_launcher.dart';
/// 配对状态枚举 - 简化版本
enum PairingState {
@@ -202,7 +203,7 @@ class PairingController extends GetxController {
case PairingState.waitingClassic:
if (device != null) {
// 有设备连接,进入验证阶段
- Logger.i(_tag, '检测到经典蓝牙设备连接,开始验证');
+ Logger.d(_tag, '检测到经典蓝牙设备连接,开始验证');
_transition(PairingState.verifying);
_verifyDevice(device);
}
@@ -623,7 +624,7 @@ class PairingController extends GetxController {
);
product = match.isNotEmpty ? match.first : null;
}
-
+ final currentBleState = await _bleManager.getConnectionState();
final names = AppConfig.allproductNames();
// 检查是否已有绑定的设备
print("device.address${device.address}");
@@ -645,6 +646,17 @@ class PairingController extends GetxController {
// 已经绑定
return 9;
}
+ } else {
+ //未绑定设备
+
+ Logger.i(_tag, '验证时BLE状态: $currentBleState');
+ if (currentBleState == 2) {
+ //已连接 清理
+ // BleConnectionState.connected
+ Logger.i(_tag, 'BLE已连接,断开并清理缓存');
+ _bleManager.clearPairedDevices();
+ _bleManager.disconnect();
+ }
}
if (Platform.isAndroid) {
@@ -672,11 +684,15 @@ class PairingController extends GetxController {
print(
'获取到 deviceName: $deviceName address: ${device.address} names:$names');
if (names.contains(deviceName)) {
+ if (currentBleState == 2) {
+ //已连接直接返回
+ return 9;
+ }
await _bleManager.startScan(deviceName);
await Future.delayed(const Duration(seconds: 1));
// 尝试最多读取 3 次设备信息,每次间隔 1 秒
List