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

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

因为我们业务的逻辑,我们需要不停变更并发送蓝牙广播  按照文档,我们的app就是不停的做如下的循环,每次都改变准备广播的数据  生成等待广播的数据A–>停止广播—>开始广播–>生成等待广播的数据B–>停止广播—>开始广播–> …  但是在测试过程中发现经常报错,stopAdvertising或startAdvertising都可能会报如下错误  系统错误 2900099 BussinessError 2900099: Operation failed 系统错误 2900007 Inner error.  我们每次停止和开始都是用await/async调用的,文档也没提到别的限制,请问为什么会报错?


更多关于HarmonyOS 鸿蒙Next系统对stopAdvertising和startAdvertising方法的调用频率或检测有什么内部限制吗?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
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

更多关于HarmonyOS 鸿蒙Next系统对stopAdvertising和startAdvertising方法的调用频率或检测有什么内部限制吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next系统对stopAdvertisingstartAdvertising方法的调用频率存在一定的内部限制,这些限制旨在确保系统资源的合理分配以及蓝牙广告功能的稳定运行。

具体而言,系统可能会对连续调用startAdvertising的频率进行限制,以防止过于频繁的广告启动对系统性能和电池续航造成不利影响。同时,对于stopAdvertising的调用,系统也会进行监控,以确保在广告停止操作后,相关资源能够得到及时释放。

此外,鸿蒙Next系统可能还会对广告数据的长度、更新频率等方面进行限制,以符合蓝牙协议标准和优化用户体验。这些限制通常会在系统文档或API参考中详细说明。

开发者在调用这些方法时,应遵循系统提供的最佳实践和限制要求,以确保应用的稳定性和兼容性。如果开发者在调用过程中遇到频率限制导致的问题,可以通过优化调用逻辑、调整广告参数等方式进行解决。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。请注意,在联系客服时,提供详细的错误信息和调用场景将有助于问题的快速定位和解决。

回到顶部