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

 【问题描述】

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

 

【解决方案】

参考如下链接实现:

BLE蓝牙低功耗

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

cke_2985.png

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 (GattService service : peripheralDevice.getServices()) {
                    checkGattCharacteristic(service);
                }
            }
        }

3、运行效果

外围

cke_7415.png

中心

cke_8691.png

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

posted @   华为开发者论坛  阅读(101)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-08-10 如何解决应用安装失败错误码-13的问题
2021-08-10 华为应用市场AGC研习社直播:App个人信息安全保护审核标准解读
点击右上角即可分享
微信分享提示