| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| AppScope/ | 06-May-2025 | - | 36 | 33 | ||
| advertiser/ | 06-May-2025 | - | 1,189 | 955 | ||
| entry/ | 06-May-2025 | - | 2,511 | 2,161 | ||
| hvigor/ | 06-May-2025 | - | 22 | 22 | ||
| screenshots/ | 06-May-2025 | - | ||||
| .gitignore | D | 06-May-2025 | 137 | 11 | 11 | |
| README_zh.md | D | 06-May-2025 | 6 KiB | 109 | 86 | |
| build-profile.json5 | D | 06-May-2025 | 1.2 KiB | 54 | 53 | |
| hvigorfile.ts | D | 06-May-2025 | 159 | 2 | 1 | |
| hvigorw | D | 06-May-2025 | 2 KiB | 63 | 28 | |
| hvigorw.bat | D | 06-May-2025 | 2 KiB | 72 | 56 | |
| oh-package.json5 | D | 06-May-2025 | 833 | 26 | 25 | |
| ohosTest.md | D | 06-May-2025 | 1.3 KiB | 13 | 11 |
README_zh.md
1# 蓝牙 2 3### 介绍 4 5本示例通过使用蓝牙低功耗心率服务,展示蓝牙相关API用法。实现了以下几点功能: 6 71. 发现具有特定服务的设备。 82. 连接到设备。 93. 发现服务。 104. 发现服务的特征、如何读取给定特征的值、为特征设置通知等。 11 12相关概念 13 141. BLE扫描:通过BLE扫描接口实现对BLE设备的搜索。 152. BLE连接:通过BLE的GattClientDevice实现对BLE设备的连接、断连等操作。 163. 接收数据:通过BLECharacteristicChange接收特征值的改变。 17 18### 效果预览 19 20| 搜索设备 | 搜索结果 | 21| ---- | ---- | 22|  |  | 23 24| 连接成功 | 实时心率 | 25| ---- | ---- | 26|  |  | 27 28使用说明 29 301. 启动应用后,弹出是否允许应用访问位置信息,点击允许后开始操作。 312. 点击界面中搜索设备,如未开启蓝牙会自动开启并搜索心率设备,如已开启直接搜索设备。 323. 点击连接按钮可以连接到对应的蓝牙心率设备。 334. 点击列表Item可以进入实时心率图查看页面。 345. 点击实时心率图页断开连接可以断开与当前心率设备的连接。 35 36### 工程目录 37 38``` 39entry/src/main/ets/ 40|---constants 41| |---BleConstants.ts // BLE常量 42| |---StyleConstants.ts // Style样式常量 43|---entryability 44|---model 45| |---BluetoothDevice.ets // 蓝牙设备model 46|---pages 47| |---Main.ets // 首页 48| |---HeartRate.ets // 实时心率图 49|---uicomponents 50| |---HeartRateGraph.ets // 实时心率图表 51| |---NavigationBar.ets // 顶部导航栏 52|---uitls 53| |---ArrayBufferUtils.ts // ArrayBuffer工具 54| |---DateUtils.ts // 日期工具 55| |---Log.ts // 日志工具 56|---viewmodel 57| |---BluetoothViewModel.ets // 主要封装了蓝牙库相关的接口,实现相关功能,如:开启蓝牙、扫描BLE、连接、断连等功能 58advertiser/src/main/ets/ 59|---constants 60| |---BleConstants.ts // BLE常量 61|---entryability 62|---pages 63| |---Main.ets // 首页 64|---uitls 65| |---ArrayBufferUtils.ts // ArrayBuffer工具 66| |---Log.ts // 日志工具 67| |---MathUtils.ts // Math工具,用于生成随机数 68|---viewmodel 69| |---AdvertiserBluetoothViewModel.ets // 主要封装了蓝牙库相关的接口,实现相关功能,如:开启蓝牙、开启蓝牙心率广播等功能 70``` 71 72### 具体实现 73 741. 首页扫描蓝牙心率设备:使用[@ohos.bluetooth.ble](https://docs.openharmony.cn/pages/v4.1/zh-cn/application-dev/reference/apis-connectivity-kit/js-apis-bluetooth-ble.md) 来实现蓝牙的开启和BLE的扫描,然后再使用一个List显示扫描到BLE心率设备,点击连接按钮可以连接上对应的心率设备。 752. 实时心率图页:使用[@ohos.bluetooth.ble](https://docs.openharmony.cn/pages/v4.1/zh-cn/application-dev/reference/apis-connectivity-kit/js-apis-bluetooth-ble.md) 来接收心率设备发送的心率数据,并使用画布[Canvas](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/arkui-ts/ts-components-canvas-canvas.md) 来绘制实时心率图,点击断开连接可以断开与当前心率设备的连接。 76 77### 相关权限 78 79| 权限名 | 权限说明 | 级别 | 80| -------------------------------------- | ------------------------------------- | ------------ | 81| ohos.permission.USE_BLUETOOTH | 允许应用查看蓝牙的配置。 | normal | 82| ohos.permission.DISCOVER_BLUETOOTH | 允许应用配置本地蓝牙,查找远端设备且与之配对连接。 | normal | 83| ohos.permission.MANAGE_BLUETOOTH | 允许应用配对蓝牙设备,并对设备的电话簿或消息进行访问。 | system_basic | 84| ohos.permission.APPROXIMATELY_LOCATION | 允许应用获取设备模糊位置信息。 | normal | 85| ohos.permission.LOCATION | 允许应用获取设备位置信息。 | normal | 86| ohos.permission.ACCESS_BLUETOOTH | 允许应用接入蓝牙并使用蓝牙能力,例如配对、连接外围设备等。 | normal | 87 88### 依赖 89 90本示例需要使用设备来模拟BLE心率设备。这里使用OpenHarmony来模拟了BLE心率设备,相关代码在`module - advertiser`。使用另一台OpenHarmony设备运行`advertiser`编译出来的hap后,点击`开启BLE心率广播`。当BLE心率服务应用扫描并连接到模拟的BLE心率设备后,就可以在应用中查看当前模拟的实时心率。 91 92### 约束与限制 93 941. 本示例仅支持标准系统上运行。 952. 本示例为Stage模型,从API version 10开始支持。SDK版本号:4.0.10.18。 963. 本示例需要使用DevEco Studio 3.1 Release (Build Version: 3.1.0.500, built on April 28, 2023)编译运行。 974. 本示例所配置的权限包含system_basic级别(相关权限级别可通过[权限定义列表]([OpenAtom OpenHarmony](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all.md)查看),需要手动配置对应级别的权限签名或者使用ACL使能(具体操作可查看[自动化签名方案](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-auto-configuring-signature-information-0000001271659465))。 98 99### 下载 100 101如需单独下载本工程,执行如下命令: 102 103``` 104git init 105git config core.sparsecheckout true 106echo code/BasicFeature/Connectivity/Bluetooth/ > .git/info/sparse-checkout 107git remote add origin https://gitee.com/openharmony/applications_app_samples.git 108git pull origin master 109```