当前位置:   article > 正文

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

csdn 鸿蒙 蓝牙 java

 【问题描述】

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

【解决方案】

参考如下链接实现:

BLE蓝牙低功耗

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

cke_2985.png

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

  1. @Override
  2. public void servicesDiscoveredEvent(int status) {
  3. super.servicesDiscoveredEvent(status);
  4. if (status == BlePeripheralDevice.OPERATION_SUCC) {
  5. boolean isok= peripheralDevice.requestBleMtuSize(251);
  6. HiLog.error(LABEL,"requestBleMtuSize===>>>"+String.valueOf(isok));
  7. for (GattService service : peripheralDevice.getServices()) {
  8. checkGattCharacteristic(service);
  9. }
  10. }
  11. }

3、运行效果

外围

cke_7415.png

中心

cke_8691.png

 

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/291764
推荐阅读
相关标签
  

闽ICP备14008679号