HarmonyOS 经典蓝牙的ssp连接和读取问题

目前经典蓝牙在未曾连接过的情况下,能正常匹配并sppConnect成功,但会出现一下两种异常情况。

1.连接成功后,spp的连接回调已经把client socket ID返回,然后我sppRead,并没有任何数据的返回,代码:

clientSocket(code: BusinessError, number: number) { 
  console.log('bluetooth error code: ' + code + "->number=" + number); 
  if (code) { 
    console.error('sppListen error, code is ' + code); 
    return; 
  } 
  console.log('bluetooth serverSocket Number: ' + number); 
} 
let sppOption: socket.SppOptions = { 
  uuid: BluetoothClassicManager.SPP_UUID, 
  secure: true, 
  type: socket.SppType.SPP_RFCOMM 
}; 
socket.sppConnect(address, sppOption, this.clientSocket); 
//成功后设置监听 
socket.on('sppRead', this.clientNumber, (data: ArrayBuffer) => { 
  console.debug("->addRead data=" + data); 
});

2.已经匹配过的设备,下次再次连接目前我的逻辑是已经匹配过的设备,再次连接时,先getPairedDevices获取上次已经匹配过的,如果在其内则直接进行sppConnect,但是无法连接上,报290003,错误日志。

在2的情况下,不直接连,再次匹配,结果也不行,直接2900099了。这是逻辑上没写对? 权限已经获取,连接匹配的地址都是在线搜索过后动态设进去的。

HarmonyOS
2024-09-06 12:21:06
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

socket模块的sppWrite远端发送数据接口和on订阅读接口是配合使用的。当服务端调用on订阅读时,需要客户端使用sppWrite接口向服务端发送数据,这时候服务端的on接口回调才会返回数据,返回的数据是客户端调用sppWrite接口向服务端发送的数据。同样,客户端读,服务端写也是可以的。

分享
微博
QQ
微信
回复
2024-09-06 16:29:51
相关问题
HarmonyOS 经典蓝牙搜索问题
258浏览 • 1回复 待解决
HarmonyOS 经典蓝牙socket通信问题
228浏览 • 1回复 待解决
HarmonyOS蓝牙连接后获取GATT服务失败
460浏览 • 1回复 待解决
HarmonyOS蓝牙广播问题
337浏览 • 1回复 待解决
c# 低功耗蓝牙 连接多个设备
3050浏览 • 1回复 待解决
蓝牙连接报错该如何处理?
288浏览 • 1回复 待解决
HarmonyOS关于蓝牙无权限问题
668浏览 • 1回复 待解决
HarmonyOS fs模块读取文件问题
365浏览 • 1回复 待解决
关于鸿蒙OS蓝牙API问题
6755浏览 • 1回复 待解决
关于鸿蒙OS蓝牙开发问题
4719浏览 • 1回复 待解决
HarmonyOS 文件上传 & 资源读取问题
309浏览 • 1回复 待解决
HarmonyOS BLE 搜索、连接、断开等问题
414浏览 • 1回复 待解决
HarmonyOS 蓝牙API咨询
297浏览 • 2回复 待解决
HarmonyOS蓝牙使用详情
243浏览 • 1回复 待解决