HarmonyOS 客户端向远端设备发起spp连接

客户端向远端设备发起spp连接一直报2900003错误。

场景描述:socket.sppConnect连接会报“errCode: 2900003, errMessage: BussinessError 2900003: Bluetooth switch is off.”这个问题。但是查询了蓝牙连接状态(access.getState()),返回的结果是STATE_ON(2),文档定义是“Indicates the local Bluetooth is on, and ready for use”已连接。

备注:蓝牙权限已申请,UUID一致,BLE连接成功。

HarmonyOS
2024-09-09 09:28:34
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

SPP必须要双端交互才能实现,大致是下面这个逻辑,需要先看看远端设备那边是不是也有什么操作可以实现服务端的功能。

1.服务端调用sppListen接口,回调中返回的number为server socket ID,这个值作为调用sppAccept接口的入参number。

2.服务端调用sppAccept接口时,回调中返回的number为client socket ID,这个值作为调用sppWrite接口的入参number。

3.客户端调用sppConnect接口,回调中返回的number为client socket ID(与2中number一致)这个值作为调用sppWrite接口的入参number。

4.一端调用on(‘sppRead’)接口订阅spp读请求事件,入参使用client socket ID。

5.另一端设备调用sppWrite接口,入参使用client socket ID,写成功后,on(‘sppRead’)接口的回调中会读取到写入的数据。

官方文档demo里调了sppListen和sppAccept,这两个接口是server端调用的,远端设备支持spp的话会做这些逻辑,把代码里的这两个接口去掉,直接调sppConnect接口,用回调中获得的clientNumber做后续业务官方文档链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/spp-development-guide-V5#ZH-CN_TOPIC_0000001884756818__%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%90%91%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%86%99%E5%85%A5%E6%95%B0%E6%8D%AE

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/spp-development-guide-V5

分享
微博
QQ
微信
回复
2024-09-09 17:28:54
相关问题
golang redis客户端连接状态
2560浏览 • 1回复 待解决
客户端开发无法获取code
256浏览 • 1回复 待解决
mysql客户端怎么开启预编译?
3120浏览 • 1回复 待解决
svn客户端和svn服务版本不同。
2213浏览 • 1回复 待解决
https如何设置ca证书和客户端证书
315浏览 • 1回复 待解决
有哪些好用的免费的MongoDB客户端
3696浏览 • 1回复 待解决
Nginx TCP转发配置 -客户端真实IP
2211浏览 • 0回复 待解决