HarmonyOS 实现蓝牙连接打印机发送数据

操作步骤:1、调用蓝牙连接方法报BussinessError 2900003: Bluetooth switch is off.蓝牙开关是开启的。

onConnect(address: string) {
  let sppOption:socket.SppOptions = {uuid: '00001810-0000-1000-8000-00805F9B34FB', secure: false, type: 0};
  try {
    socket.sppConnect(address, sppOption, (code: BusinessError, number: number) => {
      if (code) {
        console.error('sppListen error, code is ' + code);
        return;
      } else {
        console.log('bluetooth serverSocket Number: ' + number);
        // 获取的clientNumber用作客户端后续读/写操作socket的id。
        this.clientNumber = number;
      }
    });
  } catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
  }
}
HarmonyOS
8天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

关于2900003问题:正常情况下,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);
  })
}
分享
微博
QQ
微信
回复
8天前
相关问题
通过USB连接打印机打印小票时报错
395浏览 • 1回复 待解决
Socket连接中支持发送哪些数据类型
1675浏览 • 1回复 待解决
HarmonyOS蓝牙连接后获取GATT服务失败
682浏览 • 1回复 待解决
ets TCPSocket连接无法发送消息?
3936浏览 • 1回复 待解决
c# 低功耗蓝牙 连接多个设备
3237浏览 • 1回复 待解决
蓝牙连接报错该如何处理?
417浏览 • 1回复 待解决
如何发送字节流数据
625浏览 • 1回复 待解决
HarmonyOS蓝牙使用详情
350浏览 • 1回复 待解决
HarmonyOS 蓝牙API咨询
450浏览 • 2回复 待解决