diff --git a/lib/modules/home/controllers/home_controller.dart b/lib/modules/home/controllers/home_controller.dart index d3a95129e..4e63d2c82 100644 --- a/lib/modules/home/controllers/home_controller.dart +++ b/lib/modules/home/controllers/home_controller.dart @@ -145,12 +145,16 @@ class HomeController extends GetxController { update(); if (!wasConnected && isNowConnected) { - await _bleManager.fetchDeviceInfo(); + // 连接成功后等待1秒再获取设备信息 + Future.delayed(const Duration(seconds: 1), () async { + await _bleManager.fetchDeviceInfo(); + }); + // 连接成功后立即刷新一次电池信息 Future.delayed(const Duration(milliseconds: 500), () { _refreshBatteryInfo(); }); - + // 连接成功后检查OTA升级 Future.delayed(const Duration(seconds: 2), () { _checkOtaUpgrade(); diff --git a/local_plugins/agent_service/ios/agent_service/Sources/agent_service/AgentServiceImpl.swift b/local_plugins/agent_service/ios/agent_service/Sources/agent_service/AgentServiceImpl.swift index cff6ff090..06452fe1f 100644 --- a/local_plugins/agent_service/ios/agent_service/Sources/agent_service/AgentServiceImpl.swift +++ b/local_plugins/agent_service/ios/agent_service/Sources/agent_service/AgentServiceImpl.swift @@ -432,7 +432,7 @@ class AgentServiceImpl: NSObject { } stopIdleCheck() - +BleService.shared.closeCodec() // 重置识别模式 currentRecognitionMode = "normal" diff --git a/local_plugins/azure_speech/ios/azure_speech/Sources/tools/MicrophoneCapture.swift b/local_plugins/azure_speech/ios/azure_speech/Sources/tools/MicrophoneCapture.swift index 434dd0cd9..d6479f87d 100644 --- a/local_plugins/azure_speech/ios/azure_speech/Sources/tools/MicrophoneCapture.swift +++ b/local_plugins/azure_speech/ios/azure_speech/Sources/tools/MicrophoneCapture.swift @@ -51,9 +51,9 @@ class MicrophoneCapture: NSObject { // 设置音频会话参数 try audioSession.setCategory(.playAndRecord, mode: .videoChat, - options: [//.allowBluetooth, + options: [//.allowBluetooth, // 允许蓝牙耳机,占用hfp链路 // .allowAirPlay, - .allowBluetoothA2DP, + .allowBluetoothA2DP,// 允许蓝牙耳机,不占用hfp链路 .mixWithOthers, .defaultToSpeaker ]) diff --git a/local_plugins/ble_service/android/src/main/kotlin/com/yunqiinnovation/ble_service/BleService.kt b/local_plugins/ble_service/android/src/main/kotlin/com/yunqiinnovation/ble_service/BleService.kt index 9b6ee6307..dc8389a0e 100644 --- a/local_plugins/ble_service/android/src/main/kotlin/com/yunqiinnovation/ble_service/BleService.kt +++ b/local_plugins/ble_service/android/src/main/kotlin/com/yunqiinnovation/ble_service/BleService.kt @@ -89,6 +89,7 @@ object BleService { // 扫描相关 private lateinit var scanHandler: Handler private val scanResults = ArrayList() + @Volatile private var isScanning = false // 是否是ota模式 @@ -353,7 +354,7 @@ object BleService { } catch (e: Exception) { Log.e(TAG, "启动扫描失败: ${e.message}", e) // Log.i(TAG, "liwei---------startScan 10") -// isScanning = false + isScanning = false return false } } diff --git a/local_plugins/ble_service/ios/ble_service/Sources/ble_service/BleService.swift b/local_plugins/ble_service/ios/ble_service/Sources/ble_service/BleService.swift index ea066e7d2..f7972197a 100644 --- a/local_plugins/ble_service/ios/ble_service/Sources/ble_service/BleService.swift +++ b/local_plugins/ble_service/ios/ble_service/Sources/ble_service/BleService.swift @@ -644,7 +644,8 @@ private var cmdReplyType: UInt8 = 0 } /// 关闭编解码器并停止录制 - func closeCodec() -> Bool { + /// - Returns: 操作是否成功 + public func closeCodec() -> Bool { os_log("关闭编解码并停止录制...", log: logger, type: .info) // 停止录制 diff --git a/local_plugins/qq_music/ios/qq_music/Sources/qq_music/QPlayAutoManager.swift b/local_plugins/qq_music/ios/qq_music/Sources/qq_music/QPlayAutoManager.swift index 8782d68c0..cfe893384 100644 --- a/local_plugins/qq_music/ios/qq_music/Sources/qq_music/QPlayAutoManager.swift +++ b/local_plugins/qq_music/ios/qq_music/Sources/qq_music/QPlayAutoManager.swift @@ -358,7 +358,7 @@ import QPlayAutoSDK return } -// if isLoginOK { + if isLoginOK { // 已登录,检查连接状态 if isConnected { // 已连接,直接执行操作 @@ -380,20 +380,21 @@ import QPlayAutoSDK } } } -// } else { -// // 未登录,先登录 -// print("QPlayAutoManager: 未登录,尝试登录...") -// performLogin { [weak self] success in -// guard let self = self else { return } -// if success { -// print("QPlayAutoManager: 登录成功,执行操作") -// operation() -// } else { -// print("QPlayAutoManager: 登录失败,无法执行操作") -// onFailure?(.loginFailed) -// } -// } -// } + } else { + // 未登录,先登录 + print("QPlayAutoManager: 未登录,尝试登录...") + performLogin { [weak self] success in + guard let self = self else { return } + if success { + print("QPlayAutoManager: 登录成功,执行操作") + operation() + } else { + print("QPlayAutoManager: 登录失败,无法执行操作") + onFailure?(.loginFailed) + stop() + } + } + } } private func performLogin(completion: @escaping (Bool) -> Void) {