Browse Source

Merge branch 'new_dev' of https://github.com/deepcloud2048/deep_voice into new_dev

newdev_shunjiawei
tanlongsheng 1 year ago
parent
commit
e57aee66a8
  1. 4
      ios/Runner.xcodeproj/project.pbxproj
  2. 2
      lib/modules/devices/controllers/devices_controller.dart
  3. 12
      lib/modules/pairing/controllers/pairing_controller.dart
  4. 21
      local_plugins/ble_service/ios/ble_service/Sources/ble_service/BleService.swift

4
ios/Runner.xcodeproj/project.pbxproj

@ -527,7 +527,7 @@
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = 537SFY28XS;
DEVELOPMENT_TEAM = K39FB49XKY;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Deep Voice";
@ -747,7 +747,7 @@
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = 537SFY28XS;
DEVELOPMENT_TEAM = K39FB49XKY;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Deep Voice";

2
lib/modules/devices/controllers/devices_controller.dart

@ -6,8 +6,6 @@ import '/data/services/ble_manager.dart';
import '/data/services/network/api.dart';
import '/routes/app_routes.dart';
import 'package:get/get.dart';
import 'package:get/get_rx/get_rx.dart';
import 'package:get/get_state_manager/src/simple/get_controllers.dart';
/*
设备管理

12
lib/modules/pairing/controllers/pairing_controller.dart

@ -2,6 +2,7 @@ import 'dart:convert';
import 'dart:typed_data';
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';
@ -610,6 +611,10 @@ class PairingController extends GetxController {
// 检查设备名称是否包含 DeepSound 或 DeapSound
final deviceName = device.name;
// 检查是否已有BLE绑定的设备
final product = AppConfig.config.products
.firstWhere((d) => d.devicename == device.name);
final names = AppConfig.allproductNames();
// 检查是否已有绑定的设备
print("device.address${device.address}");
@ -746,7 +751,12 @@ class PairingController extends GetxController {
}
await Future.delayed(Duration(seconds: 1));
}
return 1;
if (product.devicetype == 2) {
//ble设备 必须要扫描到结果
return 0;
} else {
return 1;
}
}
return 0;
//可以跳转1

21
local_plugins/ble_service/ios/ble_service/Sources/ble_service/BleService.swift

@ -66,6 +66,9 @@ public class BleService: NSObject {
// 自动重连队列(统一管理所有待连接的设备)
private var pendingReconnectUUIDs = Set<UUID>()
// 标记是否为主动断开连接
private var isManualDisconnect = false
private let logger = OSLog(subsystem: "com.yunqiinnovation.ble_service", category: "BleService")
// MARK: - Opus音频处理器
@ -365,6 +368,7 @@ private var cmdReplyType: UInt8 = 0
}
if centralManager != nil {
isManualDisconnect = true // 标记为主动断开
updateConnectionState(BleConst.STATE_DISCONNECTING)
centralManager?.cancelPeripheralConnection(peripheral)
os_log("🔌 开始断开设备连接", log: logger, type: .info)
@ -1420,13 +1424,18 @@ extension BleService: CBCentralManagerDelegate {
updateConnectionState(BleConst.STATE_DISCONNECTED)
// 无论是否意外断开,都立即发起新的连接
if central.state == .poweredOn {
os_log("🔄 立即重新连接设备: %{public}@", log: logger, type: .info, peripheral.identifier.uuidString)
connectPeripheral(peripheral)
// 只有在非主动断开的情况下才重新连接
if !isManualDisconnect {
if central.state == .poweredOn {
os_log("🔄 意外断开,立即重新连接设备: %{public}@", log: logger, type: .info, peripheral.identifier.uuidString)
connectPeripheral(peripheral)
} else {
os_log("🔄 蓝牙未就绪,添加到重连队列: %{public}@", log: logger, type: .info, peripheral.identifier.uuidString)
pendingReconnectUUIDs.insert(peripheral.identifier)
}
} else {
os_log("🔄 蓝牙未就绪,添加到重连队列: %{public}@", log: logger, type: .info, peripheral.identifier.uuidString)
pendingReconnectUUIDs.insert(peripheral.identifier)
os_log("✅ 主动断开连接,不进行自动重连", log: logger, type: .info)
isManualDisconnect = false // 重置标志
}
}

Loading…
Cancel
Save