1## BLE蓝牙使用说明文档
2
3​		本文档主要介绍了蓝牙专项测试程序的BLE蓝牙部分(ohos.bluetoothManager.d.ts)的功能使用说明。
4
5#### 从主界面跳转到BLE蓝牙部分
6
7#### setting界面
8
9点击"switch"按钮 ,设置本设备的BLE参数与配置
10
11>"BLE扫描过滤参数","BLE扫描配置" 默认都为true,是勾选的;值也是默认填好的。**如果不需要更改,无需打开BleFilter界面**。
12>
13>外设MAC地址填了默认值,可根据自己的连接需求更改。
14>
15>BLE扫描过滤参数包括:
16>
17>- 本机MAC地址。
18>- 本机name。
19>- 本机的serviceUUid。
20>
21>BLE扫描配置包括:
22>
23>- interval值 (默认值:0)
24>
25>- dutyMode:(默认值:LOW_POWER )
26>
27> > - LOW_POWER
28> > - BALANCED
29> > - LOW_LATENCY
30>
31>- matchMode:(默认值: MATCH_MODE_AGGRESSIVE)
32>
33> >- MATCH_MODE_AGGRESSIVE
34> >- MATCH_MODE_STICKY
35
36
37
38#### BLE蓝牙的主要接口(ohos.bluetoothManager.d.ts)
39
40|         method名称          |        API名称         |                           所需参数                           |    返回值     | 备注 |
41| :-------------------------: | :--------------------: | :----------------------------------------------------------: | :-----------: | :--: |
42|         开始BLE扫描         |      startBLEScan      |     (filters: Array<ScanFilter>, options?: ScanOptions)      |     void      |      |
43|         停止BLE扫描         |      stopBLEScan       |                              ()                              |     void      |      |
44|   订阅BLE设备发现上报事件   |     on. BLEDevice      | (type: “BLEDeviceFind”, callback: Callback<Array<ScanResult>>) |     void      |      |
45| 取消订阅BLE设备发现上报事件 |   off.BLEDeviceFind    | (type: “BLEDeviceFind”, callback?: Callback<Array<ScanResult>>) |     void      |      |
46|      获取连接的BLE设备      | getConnectedBLEDevices |                              ()                              | Array<string> |      |
47
48
49
50注:此处的"创建Gatt服务器","创建Gatt客户端"功能只是写了个壳子,其主要功能在Gatt界面中。
51
52
53
54>| 参数名  |         类型          | 必填 |                             说明                             |
55>| :-----: | :-------------------: | :--- | :----------------------------------------------------------: |
56>| filters | Array<**ScanFilter**> | 是   | 表示扫描结果过滤策略集合,如果不使用过滤的方式,该参数设置为null。 |
57>| options |    **ScanOptions**    | 否   |                表示扫描的参数配置,可选参数。                |
58>
59>
60>
61>#### ScanFilter   扫描过滤参数
62>
63>| 名称                        | 类型        | 可读 | 可写 | 说明                                                         |
64>| :-------------------------- | :---------- | :--- | :--- | :----------------------------------------------------------- |
65>| deviceId                    | string      | 是   | 是   | 表示过滤的BLE设备地址,例如:“XX:XX:XX:XX:XX:XX”。           |
66>| name                        | string      | 是   | 是   | 表示过滤的BLE设备名。                                        |
67>| serviceUuid                 | string      | 是   | 是   | 表示过滤包含该UUID服务的设备,例如:00001888-0000-1000-8000-00805f9b34fb。 |
68>| serviceUuidMask             | string      | 是   | 是   | 表示过滤包含该UUID服务掩码的设备,例如:FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF。 |
69>| serviceSolicitationUuid     | string      | 是   | 是   | 表示过滤包含该UUID服务请求的设备,例如:00001888-0000-1000-8000-00805F9B34FB。 |
70>| serviceSolicitationUuidMask | string      | 是   | 是   | 表示过滤包含该UUID服务请求掩码的设备,例如:FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF。 |
71>| serviceData                 | ArrayBuffer | 是   | 是   | 表示过滤包含该服务相关数据的设备,例如:[0x90,0x00,0xF1,0xF2]。 |
72>| serviceDataMask             | ArrayBuffer | 是   | 是   | 表示过滤包含该服务相关数据掩码的设备,例如:[0xFF,0xFF,0xFF,0xFF]。 |
73>| manufactureId               | number      | 是   | 是   | 表示过滤包含该制造商ID的设备,例如:0x0006。                 |
74>| manufactureData             | ArrayBuffer | 是   | 是   | 表示过滤包含该制造商相关数据的设备,例如:[0x1F,0x2F,0x3F]。 |
75>| manufactureDataMask         | ArrayBuffer | 是   | 是   | 表示过滤包含该制造商相关数据掩码的设备,例如:[0xFF,0xFF,0xFF]。 |
76>
77>
78>
79>#### ScanOptions   扫描的配置参数
80>
81>| 名称      | 类型          | 可读 | 可写 | 说明                                                    |
82>| :-------- | :------------ | :--- | :--- | :------------------------------------------------------ |
83>| interval  | number        | 是   | 是   | 表示扫描结果上报延迟时间,默认值为0。                   |
84>| dutyMode  | **ScanDuty**  | 是   | 是   | 表示扫描模式,默认值为SCAN_MODE_LOW_POWER。             |
85>| matchMode | **MatchMode** | 是   | 是   | 表示硬件的过滤匹配模式,默认值为MATCH_MODE_AGGRESSIVE。 |
86>
87>
88>
89>#### ScanDuty   枚举,扫描模式
90>
91>|         名称          |  值  |           说明           |
92>| :-------------------: | :--: | :----------------------: |
93>|  SCAN_MODE_LOW_POWER  |  0   | 表示低功耗模式,默认值。 |
94>|  SCAN_MODE_BALANCED   |  1   |      表示均衡模式。      |
95>| SCAN_MODE_LOW_LATENCY |  2   |     表示低延迟模式。     |
96>
97>
98>
99>#### MatchMode   枚举,硬件过滤匹配模式
100>
101>|         名称          |  值  |                             说明                             |
102>| :-------------------: | :--: | :----------------------------------------------------------: |
103>| MATCH_MODE_AGGRESSIVE |  1   | 表示硬件上报扫描结果门限较低,比如扫描到的功率较低或者一段时间扫描到的次数较少也触发上报,默认值。 |
104>|   MATCH_MODE_STICKY   |  2   | 表示硬件上报扫描结果门限较高,更高的功率门限以及扫描到多次才会上报。 |
105>
106>
107>
108>#### ScanResult    扫描结果上报数据
109>
110>|   名称   |    类型     | 可读 | 可写 |                       说明                        |
111>| :------: | :---------: | :--: | :--: | :-----------------------------------------------: |
112>| deviceId |   string    |  是  |  否  | 表示扫描到的设备地址,例如:“XX:XX:XX:XX:XX:XX”。 |
113>|   rssi   |   number    |  是  |  否  |            表示扫描到的设备的rssi值。             |
114>|   data   | ArrayBuffer |  是  |  否  |          表示扫描到的设备发送的广播包。           |
115
116
117
118#### 功能
119
120**"蓝牙打开"是其他功能测试的前提**
121
1221. 开始/停止BLE扫描
123
124   - 使用指导:
125
126     > 开始BLE扫描:
127     >
128     > - 开始扫描具有筛选器的指定BLE设备。
129     > - filters表示用于筛选出指定设备的筛选器列表。
130     > - options指示扫描的参数,如果用户未指定值,将使用默认值。
131     >
132     > 停止BLE扫描。
133
134   - 限制条件:
135
136     - 只能扫描到指定BLE设备。
137     - 如果不想使用筛选器,请将此参数filters设置为{@code null}。
138     - {interval}设置为0,
139     - {扫描选项#dutyMode}设置成{SCAN_MODE_LOW_POWER}并且{ScanOptions#matchMode}设置为{ MATCH_MODE_AGGRESSIVE}
140     - @throws { BusinessError } 201 - Permission denied.
141     - @throws { BusinessError } 401 - Invalid parameter.
142     - @throws { BusinessError } 801 - Capability not supported.
143     - @throws { BusinessError } 2900001 - Service stopped.
144     - @throws { BusinessError } 2900003 - Bluetooth switch is off.
145     - @throws { BusinessError } 2900099 - Operation failed.
146
147   - 验证方法:根据弹窗消息查看已扫描到的BLE
148
149
150
1512. BLE设备查找变化
152
153   - 使用指导:为回调函数,用来监听相关类型事件的变化,并弹窗显示信息。
154
155     - 订阅BLE扫描结果。
156     - type为要侦听的扫描结果事件的类型。
157     - callback回调用于侦听扫描结果事件。
158     - @throws { BusinessError } 201 - Permission denied.
159     - @throws { BusinessError } 401 - Invalid parameter.
160     - @throws { BusinessError } 801 - Capability not supported.
161     - @throws { BusinessError } 2900099 - Operation failed.
162
163   - 限制条件:需要在相关类型事件发生改变前,开启监听。
164
165   - 验证方法:在事件变化后,查看是否有弹窗信息显示。
166
167
168
1693. 获取连接的BLE设备
170
171   - 使用指导:点击后,可获取到处于连接状态的设备列表。
172   - 限制条件:
173     - 开始BLE扫描,并发现了可连接的设备,连接后,才可以获取此设备的相关信息。
174     - @throws { BusinessError } 201 - Permission denied.
175     - @throws { BusinessError } 801 - Capability not supported.
176     - @throws { BusinessError } 2900001 - Service stopped.
177     - @throws { BusinessError } 2900003 - Bluetooth switch is off.
178     - @throws { BusinessError } 2900099 - Operation failed.
179   - 验证方法:在设备设置中,查看已经连接的设备。