Files
akmon/uni_modules/ak-sbsrv/readme.md
2026-01-20 08:04:15 +08:00

2.8 KiB
Raw Blame History

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列表

基础功能

扫描设备

import { bluetoothService } from '@/uni_modules/ak-sbsrv/utssdk/web/index.uts';

// 扫描设备
const result = await bluetoothService.scanDevices();
console.log('扫描到设备:', result.devices);

连接设备

// 连接设备
await bluetoothService.connectDevice(deviceId);

断开连接

// 断开连接
await bluetoothService.disconnectDevice(deviceId);

发送数据

// 发送数据
await bluetoothService.sendData({
  deviceId: '设备ID',
  serviceId: '服务UUID',
  characteristicId: '特征值UUID',
  data: '要发送的数据',
  format: 2 // 2代表RAW格式
});

事件监听

监听连接状态变化

// 监听连接状态变化
bluetoothService.onConnectionStateChange((deviceId, state) => {
  console.log(`设备 ${deviceId} 连接状态变为: ${state}`);
  // state: 0-断开1-连接中2-已连接3-断开中
});

监听数据接收

// 监听数据接收
bluetoothService.onDataReceived((payload) => {
  console.log('收到数据:', payload);
});

监听错误

// 监听错误
bluetoothService.onError((error) => {
  console.error('蓝牙错误:', error);
});

其他API

  • getConnectedDevices() - 获取已连接设备列表
  • getConnectionState(deviceId) - 获取指定设备的连接状态
  • listenCharacteristicNotify(deviceId, serviceId, characteristicId) - 监听特征值通知

示例项目

参见仓库中的 control.uvue 页面了解完整的使用示例。

常见问题

  1. H5中无法扫描到设备
    请确保浏览器支持Web Bluetooth API且页面在HTTPS或localhost环境下运行。

  2. 扫描后无法连接设备?
    请确保设备在可连接范围内,且蓝牙服务已打开。

  3. 发送数据失败?
    请检查serviceId和characteristicId是否正确以及特征值是否支持写入。

更新日志

1.0.0 (2025-04-24)

  • 支持Web平台的蓝牙设备扫描、连接和数据收发
  • 支持多设备同时连接管理
  • 实现事件监听机制