diff --git a/lib/modules/settings/views/settings_view.dart b/lib/modules/settings/views/settings_view.dart index 6c33ea86e..7cadd9704 100644 --- a/lib/modules/settings/views/settings_view.dart +++ b/lib/modules/settings/views/settings_view.dart @@ -569,28 +569,28 @@ class SettingsView extends GetView { // color: isDarkMode // ? Colors.white.withOpacity(0.1) // : Colors.grey[200]), - // // BLE测试 - // _buildSimpleNavigationSetting( - // title: 'opus解码测试', - // subtitle: '测试opus解码', - // icon: Icons.bluetooth_searching, - // iconBgColor: isDarkMode - // ? Colors.green[900]!.withOpacity(0.3) - // : Colors.green[100]!, - // iconColor: - // isDarkMode ? Colors.green[300]! : Colors.green[600]!, - // titleColor: isDarkMode ? Colors.white : null, - // subtitleColor: isDarkMode ? Colors.white70 : null, - // onTap: () { - // Get.toNamed(Routes.opusTest); - // }, - // isDarkMode: isDarkMode, - // ), - // Divider( - // height: 1, - // color: isDarkMode - // ? Colors.white.withOpacity(0.1) - // : Colors.grey[200]), + // BLE测试 + _buildSimpleNavigationSetting( + title: 'opus解码测试', + subtitle: '测试opus解码', + icon: Icons.bluetooth_searching, + iconBgColor: isDarkMode + ? Colors.green[900]!.withOpacity(0.3) + : Colors.green[100]!, + iconColor: + isDarkMode ? Colors.green[300]! : Colors.green[600]!, + titleColor: isDarkMode ? Colors.white : null, + subtitleColor: isDarkMode ? Colors.white70 : null, + onTap: () { + Get.toNamed(Routes.opusTest); + }, + isDarkMode: isDarkMode, + ), + Divider( + height: 1, + color: isDarkMode + ? Colors.white.withOpacity(0.1) + : Colors.grey[200]), // BLE测试 // _buildSimpleNavigationSetting( diff --git a/local_plugins/ble_service/android/src/main/kotlin/com/yunqiinnovation/ble_service/BleConst.kt b/local_plugins/ble_service/android/src/main/kotlin/com/yunqiinnovation/ble_service/BleConst.kt index 29246eabf..9ae9dd608 100644 --- a/local_plugins/ble_service/android/src/main/kotlin/com/yunqiinnovation/ble_service/BleConst.kt +++ b/local_plugins/ble_service/android/src/main/kotlin/com/yunqiinnovation/ble_service/BleConst.kt @@ -10,11 +10,18 @@ object BleConst { /** 主服务UUID - 文档中定义为0000ABC0-0000-1111-2222-123456789ABC */ val PRIMARY_SERVICE_UUID: UUID = UUID.fromString("0000abc0-0000-1111-2222-123456789abc") - /** 音频服务UUID - 文档中定义为00001801-0000-1000-8000-00805f9b34fb */ - val AUDIO_SERVICE_UUID: UUID = UUID.fromString("0000ABC0-0001-1111-2222-123456789ABC") + + /** 音频服务UUID - 文档中定义为0000ABC0-0001-1111-2222-123456789ABC */ + val AUDIO_SERVICE_UUID1: UUID = UUID.fromString("0000ABC0-0001-1111-2222-123456789ABC") + + /** 接收音频特征UUID - 文档中定义为0000ABC2-0001-1111-2222-123456789ABC */ + val RECEIVE_AUDIO_CHAR_UUID1: UUID = UUID.fromString("0000ABC2-0001-1111-2222-123456789ABC") + + /** 音频服务UUID - 文档中定义为00001801-0000-1000-8000-00805f9b34fb */ + val AUDIO_SERVICE_UUID: UUID = UUID.fromString("0000ae00-0000-1000-8000-00805f9b34fb") - /** 接收音频特征UUID - 文档中定义为0000ABC1-0000-1111-2222-123456789ABC */ - val RECEIVE_AUDIO_CHAR_UUID: UUID = UUID.fromString("0000ABC2-0001-1111-2222-123456789ABC") + /** 接收音频特征UUID - 文档中定义为0000ABC2-0001-1111-2222-123456789ABC */ + val RECEIVE_AUDIO_CHAR_UUID: UUID = UUID.fromString("0000ae02-0000-1000-8000-00805f9b34fb") /** 写入特征UUID - 文档中定义为0000ABC1-0000-1111-2222-123456789ABC */ val WRITE_CHAR_UUID: UUID = UUID.fromString("0000abc1-0000-1111-2222-123456789abc") 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 2e9d93f87..70c58d3d0 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 @@ -72,6 +72,7 @@ object BleService { private var notifyChar: BluetoothGattCharacteristic? = null private var writeChar: BluetoothGattCharacteristic? = null private var audioChar: BluetoothGattCharacteristic? = null + private var audioChar1: BluetoothGattCharacteristic? = null var recordfile: RecordingFile? = null // 扫描相关 @@ -419,6 +420,7 @@ object BleService { notifyChar = null writeChar = null audioChar = null + audioChar1 = null } } @@ -491,6 +493,10 @@ object BleService { val audioSvc = g.getService(BleConst.AUDIO_SERVICE_UUID) audioChar = audioSvc?.getCharacteristic(BleConst.RECEIVE_AUDIO_CHAR_UUID) + + // 获取音频服务1特征 + val audioSvc1 = g.getService(BleConst.AUDIO_SERVICE_UUID1) + audioChar1 = audioSvc1?.getCharacteristic(BleConst.RECEIVE_AUDIO_CHAR_UUID1) if (notifyChar == null || writeChar == null) { Log.e(TAG, "未找到主服务所需特征") updateConnectionState(BleConst.STATE_ERROR) @@ -505,6 +511,12 @@ object BleService { Log.i(TAG, "音频服务特征找到并设置通知") } else { Log.w(TAG, "音频服务特征未找到") + } + if (audioChar1 != null) { + setupNotifications(g, audioChar1) + Log.i(TAG, "音频服务特征找到并设置通知") + } else { + Log.w(TAG, "音频服务特征未找到") } // 设置主服务的通知 setupNotifications(g, notifyChar) @@ -518,10 +530,16 @@ object BleService { // 根据特征UUID区分处理 when (c.uuid) { + // 音频特征数据 + BleConst.RECEIVE_AUDIO_CHAR_UUID1 -> { + + Log.i(TAG, "RECEIVE_AUDIO_CHAR_UUID1") + processAudioData(data) + } // 音频特征数据 BleConst.RECEIVE_AUDIO_CHAR_UUID -> { - // Log.i(TAG, "收到音频特征数据") + Log.i(TAG, "RECEIVE_AUDIO_CHAR_UUID") processAudioData(data) } // 通知特征数据(命令和控制) diff --git a/local_plugins/ota/android/src/main/kotlin/com/example/ota/tool/ota/OTAManager.kt b/local_plugins/ota/android/src/main/kotlin/com/example/ota/tool/ota/OTAManager.kt index 8001b29ee..733551f6c 100644 --- a/local_plugins/ota/android/src/main/kotlin/com/example/ota/tool/ota/OTAManager.kt +++ b/local_plugins/ota/android/src/main/kotlin/com/example/ota/tool/ota/OTAManager.kt @@ -106,7 +106,7 @@ class OTAManager(context: Context) : BluetoothOTAManager(context) { "是否启用设备认证流程(与固件工程师确认) >>> ${configHelper.isUseDeviceAuth()} >>> ${bluetoothOption.isUseReconnect} " ) //是否启用设备认证流程(与固件工程师确认) - bluetoothOption.isUseAuthDevice = configHelper.isUseDeviceAuth() + bluetoothOption.isUseAuthDevice = false //设置BLE的MTU bluetoothOption.mtu = BluetoothConstant.BLE_MTU_MIN //是否需要改变BLE的MTU