Wwangweiyuan示例代码标注
5186410e创建于 2025年5月14日历史提交
README.md

蓝牙示例代码工程化

介绍

本示例为开发指南中蓝牙服务开发章节中蓝牙设置广播与扫描通用属性协议示例代码的完整工程,该工程中展示的代码详细描述可查如下链接:

蓝牙设置 广播与扫描 通用属性协议

效果预览

Scan界面 Bonded界面 Adveriser界面 Switch界面

使用说明

  1. 启动应用,蓝牙权限申请点击同意。
  2. 切换到SWITCH页面,单击开启蓝牙,等待上方蓝牙状态变为BlueTooth State: Connected。
  3. 在SCAN页面单击设置过滤参数,可以设置扫描的过滤参数。
  4. 单击开始扫描,设备开始扫描设备,扫描到的设备ID会以弹窗形式展示,单击刷新,可以更新下方的设备列表。
  5. 单击停止扫描,停止扫描设备。
  6. 单击设备列表里的connect,连接设备,设备信息会在上方循环播放展示。
  7. 切换GATT页面,填写读写特征值和描述符的过滤参数,上方输入框为写特征值和描述符的过滤参数。
  8. 单击发现服务,可以获取已连接设备的服务列表,获得的内容在上方显示。
  9. 单击写特征值或写描述符,根据上方过滤参数写入特征值和描述符。
  10. 单击读特征值或描述符,读取特征值和描述符,读取到的内容以弹窗形式显示。
  11. 单击断开连接,断开与当前设备的连接。
  12. 在Adveriser界面,单击注册服务,可以注册服务,单击注销服务,可以注销服务。
  13. 单击订阅读写特征值可以订阅读写特征值的操作。
  14. 单击设置广播内容,在打开的弹窗中设置广播的内容和参数。
  15. 单击开始广播,设备开始进行广播操作。
  16. 单击暂停广播,设备暂时停止广播。
  17. 单击继续广播,设备继续进行广播。
  18. 单击关闭广播,设备停止广播操作,关闭广播服务。
  19. 切换到SWITCH界面,单击关闭蓝牙,关闭设备的蓝牙服务。

工程目录

+--- src
|   +--- main
|   |   +--- ets
|   |   |   +--- bluetoothService
|   |   |   |   +--- BluetoothAdvertising.ets
|   |   |   |   +--- BluetoothScan.ets
|   |   |   |   +--- BluetoothSwitch.ets
|   |   |   |   +--- GattClientManager.ets
|   |   |   |   +--- GattServerManager.ets
|   |   |   +--- common
|   |   |   |   +--- AdvertisingDialog.ets
|   |   |   |   +--- ScanData.ets
|   |   |   |   +--- ScanDialog.ets
|   |   |   |   +--- ToastReport.ets
|   |   |   +--- entryability
|   |   |   |   +--- EntryAbility.ets
|   |   |   +--- entrybackupability
|   |   |   |   +--- EntryBackupAbility.ets
|   |   |   +--- pages
|   |   |   |   +--- Index.ets

具体实现

蓝牙设置

  1. import需要的access模块。

  2. 需要SystemCapability.Communication.Bluetooth.Core系统能力。

  3. 开启蓝牙。

  4. 关闭蓝牙。

  5. 错误码请参见蓝牙服务子系统错误码

  6. 如何验证: 执行开启蓝牙代码,记录日志“bluetooth statues: STATE_ON”,则表示开启蓝牙成功。执行关闭蓝牙代码,记录日志“bluetooth statues: STATE_OFF”,则表示蓝牙关闭成功。

广播与扫描开发指导

开启/关闭广播
  1. import需要的ble模块。
  2. 开启设备的蓝牙。
  3. 需要SystemCapability.Communication.Bluetooth.Core系统能力。
  4. 开启广播,对端设备扫描该广播。
  5. 关闭广播。
  6. 错误码请参见蓝牙服务子系统错误码
开启/关闭扫描
  1. import需要的ble模块。
  2. 开启设备的蓝牙。
  3. 需要SystemCapability.Communication.Bluetooth.Core系统能力。
  4. 对端设备开启广播。
  5. 本端设备开启扫描,获取扫描结果。
  6. 关闭扫描。
  7. 错误码请参见蓝牙服务子系统错误码

通用属性协议开发指导

连接server端读取和写入信息
  1. import需要的ble模块。
  2. 创建gattClient实例对象。
  3. 连接gattServer。
  4. 读取gattServer的特征值和描述符。
  5. 向gattServer写入特征值和描述符。
  6. 断开连接,销毁gattClient实例。
  7. 错误码请参见蓝牙服务子系统错误码
server端操作services和通知客户端信息
  1. import需要的ble模块。
  2. 创建gattServer实例对象。
  3. 添加services信息。
  4. 当向gattServer写入特征值通知gattClient。
  5. 移除services信息。
  6. 注销gattServer实例。
  7. 错误码请参见蓝牙服务子系统错误码

相关权限

ohos.permission.USE_BLUETOOTH

ohos.permission.DISCOVER_BLUETOOTH

ohos.permission.ACCESS_BLUETOOTH

依赖

不涉及

约束与限制

1.本示例仅支持标准系统上运行, 支持设备:RK3568。

2.本示例为Stage模型,支持API14版本SDK,版本号:5.0.2.57,镜像版本号:OpenHarmony_5.0.2.57。

3.本示例需要使用DevEco Studio NEXT Developer Preview2 (Build Version: 5.0.5.306, built on December 12, 2024)及以上版本才可编译运行。

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo code/DocsSample/bluetoothSample/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master