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
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 经典蓝牙的搜索问题
294浏览 • 1回复 待解决
HarmonyOS 经典蓝牙的socket通信问题
260浏览 • 1回复 待解决
HarmonyOS 请提供一个经典蓝牙的串口通信demo
359浏览 • 1回复 待解决
如何让蓝牙网络和插网线的本地连接同时使用?
2757浏览 • 1回复 待解决
HarmonyOS蓝牙连接后获取GATT服务失败
555浏览 • 1回复 待解决
HarmonyOS 应用崩溃后如何关闭蓝牙等连接
402浏览 • 0回复 待解决
HarmonyOS 蓝牙权限的问题, 未授权蓝牙权限后,蓝牙权限如何开启
398浏览 • 1回复 待解决
HarmonyOS蓝牙广播问题
400浏览 • 1回复 待解决
请问鸿蒙蓝牙BLE断开连接的接口是什么
6273浏览 • 1回复 待解决
蓝牙连接报错该如何处理?
330浏览 • 1回复 待解决
c# 低功耗蓝牙 连接多个设备
3113浏览 • 1回复 待解决
HarmonyOS关于蓝牙无权限的问题
824浏览 • 1回复 待解决
HarmonyOS fs模块读取文件的问题
421浏览 • 1回复 待解决
关于鸿蒙OS蓝牙开发的问题
4776浏览 • 1回复 待解决
关于鸿蒙OS蓝牙API的问题?
6818浏览 • 1回复 待解决
HarmonyOS AudioKit C API实现音频播放,连接蓝牙后,声音播放异常(有突突的声音)
245浏览 • 1回复 待解决
HarmonyOS 文件上传 & 资源读取问题
366浏览 • 1回复 待解决
android 手机能否同时连接两个蓝牙设备
3775浏览 • 1回复 待解决
HarmonyOS BLE 搜索、连接、断开等问题
466浏览 • 1回复 待解决
获取蓝牙权限后进入应用权限管理页面并没有获取到蓝牙权限,不确认是HarmonyOS问题还是调用的蓝牙权限不对
305浏览 • 1回复 待解决
harmonyOS 蓝牙怎么创建?
5534浏览 • 1回复 待解决
用户首选项和kvstore都是异步保存和读取,有同步读取方式吗
325浏览 • 1回复 待解决
HarmonyOS 如何获取设备内存大小和连接WiFi的SSID
385浏览 • 1回复 待解决
HarmonyOS 蓝牙API咨询
354浏览 • 2回复 待解决
socket模块的sppWrite远端发送数据接口和on订阅读接口是配合使用的。当服务端调用on订阅读时,需要客户端使用sppWrite接口向服务端发送数据,这时候服务端的on接口回调才会返回数据,返回的数据是客户端调用sppWrite接口向服务端发送的数据。同样,客户端读,服务端写也是可以的。