# BluetoothBLE **Repository Path**: mayun903/bluetooth-ble ## Basic Information - **Project Name**: BluetoothBLE - **Description**: 【鸿蒙 Harmony Next 示例 代码】BT_BLE蓝牙连接 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-03-19 - **Last Updated**: 2025-03-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BT_BLE连接 ## 介绍 本示例展示了 * BLE服务端的创建 * 服务端对客户端操作的响应和监听 * BLE客户端的创建 * 客户端对特征值的读写 ## 注意事项 - 带蓝牙名称会增加广播包长度,超过31字节广播没法发成功 - 蓝牙名称尽量设置较短,两三个字符即可 - 写描述符注意点: ``` 描述符的写入不能使用00002902-0000-1000-8000-00805F9B34FB的descriptorUuid 在广播的时候增加了00002903-0000-1000-8000-00805F9B34FB的descriptorUuid用来做描述符的写入 descriptorValue值只能是Arraybuffer(2),2位的Arraybuffer ``` ## 需要的权限 1. ohos.permission.ACCESS_BLUETOOTH ## 使用步骤 ``` 服务端 1、创建GattServer实例 2、打开订阅BLE广播状态 3、server端添加服务 4、开始发送BLE广播 5、打开订阅特征值读请求事件,为监听客户端请求读特征值时并发送响应消息 6、打开订阅描述符写请求事件,为监听客户端写描述符事件并发送响应消息 7、打开订阅特征值写请求事件,为监听客户端写特征值事件并发送响应消息 8、获取当前设备作为Server端时连接BLE设备地址集合(在客户端已连接后调用此接口) 客户端 1、打开订阅BLE设备(Demo中只展示最新的扫描结果,实际可以用Array存放) 2、发起BLE扫描流程,可以用过滤条件只扫描想要的结果(Demo中加了W过滤条件) 3、关闭扫描(可选,在已经扫描出想要的结果后) 4、点击扫描出的deviceId(随机设备Mac地址,同一设备每次发送的广播Mac地址不一样) 5、在aboutToAppear创建一个可使用的GattClientDevice实例 6、打开连接状态监听 7、打开连接开关 8、等待连接状态打开,若连接失败,状态则不会变 9、点击服务发现,获取服务信息(接下来操作的基础) 10、读取服务端特征值 11、选择通知通道,并打开通道开关,开关打开后,通道不可变更 12、打开特征值变化事件监听 13、写特征值操作 14、写描述符操作 ``` ## 工程目录 ``` entry/src/main/ets/ |---common | |---Constants.ets |---entryability | |---EntryAbility.ets |---pages | |---Client.ets // 客户端页面 | |---ClientDetail.ets // 具体设备操作页面 | |---MainPage.ets // Demo主页面 | |---Server.ets // BLE服务端功能页面 |---utils | |---PermissionsUtil.ets // 权限操作工具类 | |---Util.ets // 工具类 ``` ## 效果预览 ![img.png](img.png)