0
点赞
收藏
分享

微信扫一扫

【FAQ】【HarmonyOS】鸿蒙java开发关于蓝牙通信api的传输数据大小设置

非凡兔 2022-08-09 阅读 95

 【问题描述】

在使用BlePeripheralDevice类的writeCharacteristic方法向蓝牙传输数据,如果数据长度长一点,通过串口工具发现蓝牙设备端是会分包接受数据的各个部分,那么鸿蒙java中有方法可以将数据一次传输给蓝牙设备,从而避免设备分包接受数据的现象吗?

【解决方案】

参考如下链接实现:

​​BLE蓝牙低功耗​​

1、把代码复制到项目中,但是文档描述BLE设备间通信对数据大小有限制,一次性传输的数据最大不超过20字节,超过部分将无法传输。如下如图所示

【FAQ】【HarmonyOS】鸿蒙java开发关于蓝牙通信api的传输数据大小设置_蓝牙通信api

2、如果想扩大传输字节,可以对项目代码做出如下的修改,把BleCentralAbilitySlice的java的servicesDiscoveredEvent回调方法里添加如下代码

@Override
public void servicesDiscoveredEvent(int status) {
super.servicesDiscoveredEvent(status);
if (status == BlePeripheralDevice.OPERATION_SUCC) {
boolean isok= peripheralDevice.requestBleMtuSize(251);
HiLog.error(LABEL,"requestBleMtuSize===>>>"+String.valueOf(isok));
for

【FAQ】【HarmonyOS】鸿蒙java开发关于蓝牙通信api的传输数据大小设置_蓝牙通信api_02

3、运行效果

外围

【FAQ】【HarmonyOS】鸿蒙java开发关于蓝牙通信api的传输数据大小设置_蓝牙通信api_03

中心

【FAQ】【HarmonyOS】鸿蒙java开发关于蓝牙通信api的传输数据大小设置_蓝牙通信api_04

欲了解更多更全技术文章,欢迎访问​​https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh​​

举报

相关推荐

0 条评论