触觉智能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索取。

相关推荐
小白学鸿蒙7 小时前
一加6T 如何刷openharmony6.1系统
openharmony·一加6t
加农炮手Jinx9 小时前
Flutter 组件 conventional 适配鸿蒙 HarmonyOS 实战:约定式提交标准,构建自动化版本治理与 CI/CD 质量治理架构
flutter·harmonyos·鸿蒙·openharmony
王码码203510 小时前
Flutter 三方库 appstream 的鸿蒙化适配指南 - 驾驭 Linux 生态元数据规范,打造高性能、标准化、国际化的 OpenHarmony 桌面应用商店分发基石
flutter·harmonyos·鸿蒙·openharmony
墨染倾城殇10 小时前
Nordic nRF54115 + BLE 蓝牙6.0:物联网多协议互联
物联网·蓝牙模块·ble·nordic·蓝牙6.0·nrf54115
summerkissyou198710 小时前
android-蓝牙-状态和协议值总结及监听例子
android·蓝牙
特立独行的猫a2 天前
HarmonyOS鸿蒙PC的QT应用开发:QT项目运行原理与 EmbeddedUIExtensionAbility介绍
qt·华为·harmonyos·openharmony·鸿蒙pc
2501_921930833 天前
Flutter for OpenHarmony三方库适配实战:file_selector文件选择详解
flutter·openharmony
2501_921930833 天前
Flutter for OpenHarmony三方库适配实战:url_launcher URL启动器
flutter·openharmony
liuniu08184 天前
如何在aosp11中打开蓝牙日志--bt_snoop
蓝牙·rk3566·泰山派·bt_snoop·aosp11
嵌入式小企鹅6 天前
蓝牙学习系列(七):BLE GATT 数据模型详解
学习·蓝牙·ble·蓝牙协议栈·蓝牙开发·gatt