HarmonyOS鸿蒙Next中SPP蓝牙连接报错
HarmonyOS鸿蒙Next中SPP蓝牙连接报错
在使用经典蓝牙(spp)模块进行蓝牙连接时,系统报错{"code":2900003,"message":"BussinessError 2900003: Bluetooth switch is off."}
connection.pairDevice(deviceId);
connection.on('bondStateChange',
(bondState: connection.BondStateParam) => {
// data为回调函数入参,表示配对的状态
if (bondState.state == connection.BondState.BOND_STATE_BONDED) {
let sppOption: socket.SppOptions = { uuid: '00001810-0000-1000-8000-00805F9B34FB', secure: false, type: 0 };
socket.sppConnect(deviceId, sppOption, (err: BusinessError, number: number) => {
console.log(JSON.stringify(err))
});
} else if (bondState.state == connection.BondState.BOND_STATE_BONDING) {
console.log("配对中...")
} else {
failCallback && failCallback({ errCode: -1, errMsg: "蓝牙配对失败" });
}
});
更多关于HarmonyOS鸿蒙Next中SPP蓝牙连接报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于HarmonyOS鸿蒙Next中SPP蓝牙连接报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
关于2900003问题:
首先,您的远端设备是什么设备?是否适配socked模块功能?
正常情况下,socket通过sppConnect连接的对端设备,是需要对端设备已经通sppListen和sppAccept接口创建服务监听、等待客户端连接的,这一点需要您确认一下。
其次,若对端设备已经通过sppListen和sppAccept接口创建服务监听、等待客户端连接,请确保您对端设备创建监听时的uuid和您客户端使用到的uuid保持一致。
最后,若是上述都不行的话,请您尝试清除与对端设备的基本蓝牙连接信息,重新建立基础连接,然后再进行socket连接测试。
如果您的打印机已经具备socket模块功能,您这边只需要调用sppConnect连接打印机即可。
如下写法:
link() {
socket.sppConnect(this.deviceId, { uuid: '00001126-0000-1000-8000-00805f9b34fb', secure: false, type: 0 },
(code, socketID) => {
if (code != null) {
console.error('客户端sppConnect error, code = ' + (code as BusinessError).code);
return;
}
this.clientNumber = socketID
console.info('客户端sppConnect success, socketId = ' + socketID);
})
}
连接时请检查蓝牙开启状态,deviceId和uuid配置是否有误。

