Skip to content

经典蓝牙服务端 客户端 spp 蓝牙

插件 ID: 26830
来源: https://ext.dcloud.net.cn/plugin?id=26830
经典蓝牙插件 spp 客户端与服务端,支持打开、扫描、连接、写入数据,可指定 uuid,已补齐 HarmonyOS 端对应实现


更新记录

                                                    1.0.3(2026-06-03)

增加鸿蒙端

                                                    1.0.2(2026-05-06)

修复编译错误

                                                    1.0.1(2026-02-28)

修改插件名称信息 查看更多

平台兼容性

uni-app(4.61)

| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 | | | √ | √ |

  • |
  • | √ | √ | 5.0 |
  • | √ | | | 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 | | |
  • |
  • |
  • |
  • |
  • |
  • |
  • |
  • |
  • |
  • |
  • |
  • | |

uni-app x(4.56)

| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 | | |

  • |
  • | 5.0 |
  • | √ |
  • | |

其他

| 多语言 | 暗黑模式 | 宽屏模式 | | | √ | √ | √ | |

xtf-sppbt

引入

import {BtClient,,BtServer,openBtBluetooth,string2ByteStrWithCharset,byte2StringWithCharset,isEnabled,MyApiResult,ConnectPara,setConnectUUID,ServerReadData} from "@/uni_modules/xtf-sppbt"

判断系统蓝牙是否开启

var b=isEnabled();// true 表示开启

请求开启蓝牙

uniappx

openBtBluetooth(function(res:MyApiResult){
    //res.type  0 表示开启成功  1 表示失败
    console.log(res);
})

uniapp

openBtBluetooth(function(res){
    //res.type  0 表示开启成功  1 表示失败
    console.log(res);
})

字符转16进制字符串

var b=string2ByteStrWithCharset("您好 经典蓝牙","gbk")// 支持多种格式 可以传ut8-8 iso8859-1等
//b 的值为C4FABAC320BEADB5E4C0B6D1C0

16进制字符串转字符

var b=byte2StringWithCharset("C4FABAC320BEADB5E4C0B6D1C0") // 支持多种格式 可以传ut8-8 iso8859-1等
//b 的值为 您好 经典蓝牙

设置蓝牙的uuid 默认为下方值 需要自定义请自行设置

setConnectUUID("00001101-0000-1000-8000-00805F9B34FB")

经典蓝牙客户端

var client=new BtClient();

扫描蓝牙

uniappx

client.startScanDevice(function(res:MyApiResult){
    console.log(res);
    // res.type  -1 表示无蓝牙权限  0 表示扫描到蓝牙  res.data 为DeviceData
})

uniapp

client.startScanDevice(function(res){
    console.log(res);
    // res.type  -1 表示无蓝牙权限  0 表示扫描到蓝牙  res.data 为DeviceData
})

停止扫描蓝牙

    client.stopScan();

获取系统已配对蓝牙

var bonds= client.getBondDevices()// bonds为MyApiResult  res.data 为DeviceData

请求蓝牙配对

uniappx

client.bond("41:42:8D:29:21:47",function(res:MyApiResult){
    // 有返回表示配对状态发生变化
})

uniapp

client.bond("41:42:8D:29:21:47",function(res){
    // 有返回表示配对状态发生变化
})

链接到经典蓝牙服务端

uniappx

client.onConnnect({
        mac:"41:42:8D:29:21:47",
        connectCallback:function(res:MyApiResult){
            console.log(res);
            // res.type  0 链接成功  10001 链接失败
        },
        dataCallback:function(res:MyApiResult){
            console.log(res);
            //res.type  0 读取到数据  数据为res.data    10000 开启读取成功   10001 为链接断开 读取异常了
        }
} as ConnectPara)

uniapp

client.onConnnect({
        mac:"41:42:8D:29:21:47",
        connectCallback:function(res){
            console.log(res);
            // res.type  0 链接成功  10001 链接失败
        },
        dataCallback:function(res){
            console.log(res);
            //res.type  0 读取到数据  数据为res.data    10000 开启读取成功   10001 为链接断开 读取异常了
        }
} )

发送数据

client.write("5566778899")

断开链接

client.close();

蓝牙是否链接

var b=client.isBtConnect()

经典蓝牙spp 服务端

BtServer

var server=new BtServer();

开启spp 蓝牙服务端

uniappx

server.startSppServer("xtf",function(res:MyApiResult){
    console.log(res);
})

uniapp

server.startSppServer("xtf",function(res){
    console.log(res);
})

开启spp 蓝牙服务端

uniappx

server.startSppServer("xtf",function(res:MyApiResult){
    console.log(res);
    // res.type 0服务已经开启 等待链接  10000 设备链接成功  res.data 为DeviceData  10001 为设备 断开链接 res.data 为DeviceData  10002 为 设备发送过来的数据 res.data 为ServerReadData
})

uniapp

server.startSppServer("xtf",function(res){
    console.log(res);
    // res.type 0服务已经开启 等待链接  10000 设备链接成功  res.data 为DeviceData  10001 为设备 断开链接 res.data 为DeviceData  10002 为 设备发送过来的数据 res.data 为ServerReadData
})

服务端主动关闭已链接蓝牙

server.closeSocket("41:42:8D:29:21:47")

关闭蓝牙服务端

server.closeServer()

开发文档

UTS 语法UTS API插件UTS uni-app兼容模式组件UTS 标准模式组件Hello UTS

MIT Licensed