HarmonyOS对stopAdvertising和startAdvertising方法的调用频率或检测有什么内部限制吗?

因为业务的逻辑,需要不停变更并发送蓝牙广播。按照文档,app就是不停的做如下的循环,每次都改变准备广播的数据。生成等待广播的数据A–>停止广播—>开始广播–>生成等待广播的数据B–>停止广播—>开始广播。但是在测试过程中发现经常报错,stopAdvertising或startAdvertising都可能会报如下错误

系统错误 2900099 BussinessError 2900099: Operation failed 
系统错误 2900007 Inner error. 

每次停止和开始都是用await/async调用的,文档也没提到别的限制,请问为什么会报错?

HarmonyOS
2024-12-24 14:28:27
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

2900099报错可能原因是使用了固定的deviceId,实际deviceId地址是根据真实地址随机生成的地址,需要手动获取这个随机mac地址,获取方式可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-bluetooth-connection-V5#connectiononbluetoothdevicefind

2900007错误码表示接口调用超时,在接口调用超时失败时会报此错误。对文件字节大小有限制。设置传输单元用这个接口setBLEMtuSize,范围为22~512字节,参考文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-connectivity-kit/js-apis-bluetooth-ble.md#writedescriptorvalue-1

可以使用advertisingStateChange订阅BLE广播状态,当完全停止广播后才调用startAdvertising,具体细节可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-bluetooth-ble-V5#bleonadvertisingstatechange11

分享
微博
QQ
微信
回复
2024-12-24 16:54:55
相关问题
HarmonyOS通过方法调用loading
661浏览 • 0回复 待解决
LocalStorage大小限制
1842浏览 • 1回复 待解决
Listitem点击变色什么方法
2422浏览 • 1回复 待解决
IPC与RPC通信什么约束限制
504浏览 • 1回复 待解决
HarmonyOS select最小高度限制
134浏览 • 1回复 待解决
路由传入参数大小限制
1000浏览 • 1回复 待解决
写入单文件大小限制
1736浏览 • 1回复 待解决
大家Open source什么看法?
3521浏览 • 0回复 待解决