# ak-sbsrv ## 介绍 ak-sbsrv 是一个多蓝牙设备连接管理插件,基于 uni-app-x UTS 开发,支持同时连接和管理多个蓝牙设备。 主要特点: - 支持多蓝牙设备的扫描、连接和通信 - 支持多种蓝牙协议(BLE、SLE、BR/EDR等) - 支持多种数据格式(JSON、XML、RAW等) - 统一接口,多平台支持(目前已支持H5平台) ## 平台支持 - H5 (Chrome、Edge、Safari等支持Web Bluetooth API的现代浏览器) - Android (开发中) - iOS (开发中) > 注:H5端需要在支持Web Bluetooth API的浏览器及安全上下文(HTTPS或localhost)中使用 ## 安装使用 1. 在插件市场下载或通过HBuilderX导入本插件 2. 导入到项目中 ## API列表 ### 基础功能 #### 扫描设备 ```js import { bluetoothService } from '@/uni_modules/ak-sbsrv/utssdk/web/index.uts'; // 扫描设备 const result = await bluetoothService.scanDevices(); console.log('扫描到设备:', result.devices); ``` #### 连接设备 ```js // 连接设备 await bluetoothService.connectDevice(deviceId); ``` #### 断开连接 ```js // 断开连接 await bluetoothService.disconnectDevice(deviceId); ``` #### 发送数据 ```js // 发送数据 await bluetoothService.sendData({ deviceId: '设备ID', serviceId: '服务UUID', characteristicId: '特征值UUID', data: '要发送的数据', format: 2 // 2代表RAW格式 }); ``` ### 事件监听 #### 监听连接状态变化 ```js // 监听连接状态变化 bluetoothService.onConnectionStateChange((deviceId, state) => { console.log(`设备 ${deviceId} 连接状态变为: ${state}`); // state: 0-断开,1-连接中,2-已连接,3-断开中 }); ``` #### 监听数据接收 ```js // 监听数据接收 bluetoothService.onDataReceived((payload) => { console.log('收到数据:', payload); }); ``` #### 监听错误 ```js // 监听错误 bluetoothService.onError((error) => { console.error('蓝牙错误:', error); }); ``` ### 其他API - `getConnectedDevices()` - 获取已连接设备列表 - `getConnectionState(deviceId)` - 获取指定设备的连接状态 - `listenCharacteristicNotify(deviceId, serviceId, characteristicId)` - 监听特征值通知 ## 示例项目 参见仓库中的 [control.uvue](pages/control.uvue) 页面了解完整的使用示例。 ## 常见问题 1. **H5中无法扫描到设备?** 请确保浏览器支持Web Bluetooth API,且页面在HTTPS或localhost环境下运行。 2. **扫描后无法连接设备?** 请确保设备在可连接范围内,且蓝牙服务已打开。 3. **发送数据失败?** 请检查serviceId和characteristicId是否正确,以及特征值是否支持写入。 ## 更新日志 ### 1.0.0 (2025-04-24) - 支持Web平台的蓝牙设备扫描、连接和数据收发 - 支持多设备同时连接管理 - 实现事件监听机制