触觉智能RK3576开发板OpenHarmony开源鸿蒙蓝牙BLE主机实现方案

本文介绍OpenHarmony开源鸿蒙系统的BLE(低功耗蓝牙)主机实现示例,基于触觉智能****RK3576开发板Purple Pi OH2演示。

OpenHarmony的BLE系统API

通过OpenHarmony的ble与bluetoothManager系统API,实现蓝牙状态管理、设备扫描、连接控制、数据收发等核心功能。方案采用ArkTS语言开发,通过响应式状态管理实现UI与业务逻辑的联动,适用于需要与BLE从设备进行通信的物联网场景。触觉智能相关****实测,可通过触觉智能各视频平台搜搜了解。

本示例使用@ohos.bluetooth.ble(蓝牙ble模块), 提供了对蓝牙操作和管理的方法。本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。接口中涉及的UUID服务,可以通过工具函数util.generateRandomUUID生成。

  • 相关权限

ohos.permission.ACCESS_BLUETOOTH

ohos.permission.MANAGE_BLUETOOTH

ohos.permission.USE_BLUETOOTH

ohos.permission.DISCOVER_BLUETOOTH

ohos.permission.LOCATION

ohos.permission.APPROXIMATELY_LOCATION

依赖:不涉及

  • 约束与限制

1.本示例仅支持标准系统上运行;

2.本示例已适配API version 12版本SDK;

  1. 本示例为Stage模型,本示例需要使用DevEco Studio 5.0.2 Release及以上版本才可编译运行。

4.本示例所配置的权限ohos.permission.MANAGE_BLUETOOTH为system_basic级别(相关权限级别可通过权限定义列表++系统应用可用权限++ 查看),需要手动配置对应级别的权限签名(具体操作可查看自动化签名方案++zh-cn/application-dev/security/hapsigntool-overview.md· OpenHarmony/docs - Gitee.com++ ) 。

  1. 本示例所配置的权限ohos.permission.MANAGE_BLUETOOTH为system_basic级别,需要使用Full SDK ++如何替换full-SDK++ 。

BLE主机核心功能模块解析

  • 蓝牙状态管理

负责监测和控制蓝牙开关状态,确保BLE功能正常启用。

状态跟踪:通过isBluetoothEnabled

(ObservedPropertySimplePU<boolean>类型)实时记录蓝牙启用状态,支持 UI 响应式更新。

状态检查与切换,通过checkAndEnableBluetooth方法实现:

调用bluetoothManager.getState()获取当前蓝牙状态

(STATE_OFF/STATE_ON/STATE_TURNING_ON等)。

若蓝牙未开启(STATE_OFF),调用

bluetoothManager.enableBluetooth()发送开启请求。

记录操作日志(如 "蓝牙已开启""蓝牙正在开启中"),便于问题排查。

  • BLE设备扫描

实现对周围BLE从设备的扫描、结果去重与管理。

扫描状态控制:

通过isScanning(ObservedPropertySimplePU<boolean>)标记扫描是否正在进行。

扫描逻辑通过startBLEScan方法实现:

1、前置检查

扫描前验证蓝牙是否处于STATE_ON状态,未开启则提示用户先启用蓝牙。

2、结果处理

通过ble.on('BLEDeviceFind')监听扫描结果,对新发现的设备

(ble.ScanResult)进行去重(基于deviceId),避免重复添加。

3、结果存储

扫描到的设备列表通过scanResults

(ObservedPropertyObjectPU<Array<ble.ScanResult>>)管理,支持 UI 实时展示。

  • 设备连接与GATT服务管理

负责与 BLE 从设备建立连接,并管理 GATT(通用属性配置文件)服务与特征值。

连接状态跟踪:通过isConnected

(ObservedPropertySimplePU<boolean>)标记连接状态,connectedClient(ble.GattClientDevice)存储当前连接的 GATT 客户端实例。

服务发现:连接成功后,通过deviceServices

(ObservedPropertyObjectPU<Array<ble.GattService>>)

存储从设备提供的 GATT 服务列表,支持后续特征值操作。

特征值管理:

oselectedCharacteristic:跟踪当前选中的特征值 UUID,用于数据读写。

onotifiedCharacteristics:记录已启用通知的特征值列表,支持实时接收从设备推送的数据。

  • 数据收发与日志管理

实现与 BLE 从设备的数据交互,并记录关键操作日志。

数据接收:通过receivedData(实时数据)和receivedDataHistory(历史记录)存储从设备发送的数据,支持 UI 展示。

数据发送:通过inputText获取用户输入的发送数据,结合选中的特征值(selectedCharacteristic)向从设备写入数据。

日志管理:

logMessages(ObservedPropertyObjectPU<Array<string>>)记录所有关键操作(如蓝牙状态变化、扫描结果、连接事件等),便于调试与用户反馈。

更多OpenHarmony开源鸿蒙BLE主机实现配置,如权限配置、使用流程

资料,请关注触觉智能CSDN索取。

相关推荐
好的佩奇8 小时前
蓝牙之通信架构
android·flutter·蓝牙
熊猫钓鱼>_>16 小时前
平行视界兼容模式与魔法变量配置避坑【鸿蒙心迹】
运维·服务器·开发语言·笔记·华为·harmonyos·openharmony
笔绘丹心2 天前
测试工程师的 BLE 抓包实战:从开关到 Wireshark 逐帧解读(红米/小米避坑版)
wireshark·抓包·ble
好的佩奇3 天前
蓝牙之无线电与通信距离
android·flutter·蓝牙
熊猫钓鱼>_>3 天前
碰一碰无网近场文件快传与断点续传【鸿蒙心迹】
华为·交互·harmonyos·arkts·鸿蒙·openharmony·鸿蒙心迹
熊猫钓鱼>_>4 天前
四种书签,一条时间线:一个读书 App 的记忆颗粒与它的边界案例【鸿蒙心迹】
开发语言·华为·ai编程·harmonyos·鸿蒙·openharmony·鸿蒙pc
熊猫钓鱼>_>4 天前
鸿蒙 PC 三方库适配复盘:libfvad 1.0 —— 把 WebRTC VAD 做成能装进采集链路的静态库
服务器·开发语言·华为·harmonyos·openharmony·适配·鸿蒙pc
Industio_触觉智能4 天前
瑞芯微RK系列调试工具与量产测试手册-上|串口日志打通与JTAG兜底调试
linux·sdk·jtag·瑞芯微·调试工具·rk3576·量产调试
szxinmai主板定制专家5 天前
ARM+FPGA 数控机床控制器:选 CODESYS SoftMotion CNC,还是基于 LinuxCNC 自研搭建?架构、授权、实时性、量产风险深度对比
arm开发·fpga开发·codesys·数据采集卡·linuxcnc·rk3576
合众恒跃5 天前
合众恒跃具身机器人嵌入式AI解决方案
人工智能·机器人·rk3588·jetson·英伟达·瑞芯微·rk3576