1## GattManager测试使用说明文档
2
3​		本文档主要介绍蓝牙专项测试程序的Gatt部分(ohos.bluetoothManager.d.ts)的功能使用说明。
4
5### 从主界面跳转到Gatt蓝牙部分
6
7Gatt测试分为Client测试和Server测试
8
9### Gatt客户端
10
11选择GattClient测试,进行Gatt客户端的测试
12
13#### GattClientSetting界面
14
15点击"switch"图标,可以在setting界面修改MAC地址, ServerUUID, characteristicUuid, descriptorUuid的值。已经设置了默认值。
16
17>Gatt_ClientSetting中参数有:
18>
19>​	外围设备MAC
20>
21>​	服务UUID
22>
23>​	特征值UUID,特征值Value
24>
25>​	描述符UUID,描述符Value
26
27#### GattClient的主要接口(ohos.bluetoothManager.d.ts)
28
29|              method名称              |              API名称              |                           所需参数                           |           返回值            | 备注 |
30| :----------------------------------: | :-------------------------------: | :----------------------------------------------------------: | :-------------------------: | :--: |
31|            创建GattClient            |      createGattClientDevice       |                      (deviceId: string)                      |      GattClientDevice       |      |
32|                 连接                 |              connect              |                              ()                              |            void             |      |
33|               取消连接               |            disconnect             |                              ()                              |            void             |      |
34|   订阅蓝牙低功耗设备的连接状态变化   |   on.BLEConnectionStatecChange    | (type: "BLEConnectionStateChange", callback: Callback<BLEConnectChangedState>) |            void             |      |
35| 取消订阅蓝牙低功耗设备的连接状态变化 |   off.BLEConnectionStateChange    | (type: “BLEConnectionStateChange”, callback?: Callback<BLEConnectChangedState>) |            void             |      |
36|                 关闭                 |               close               |                              ()                              |            void             |      |
37|           获取服务callback           |       getServices(callback)       |        (callback: AsyncCallback<Array<GattService>>)         |            void             |      |
38|           获取服务promise            |        getServices(pomise)        |                              ()                              | Promise<Array<GattService>> |      |
39|          读取特征值callback          | readCharacteristicValue(callback) | (characteristic: BLECharacteristic, callback: AsyncCallback<BLECharacteristic>) |            void             |      |
40|          读取特征值promise           |  readCharacteristicValue(pomise)  |             (characteristic: BLECharacteristic)              | Promise<BLECharacteristic>  |      |
41|         读取描述符值callback         |  readDescripitorValue(callback)   | (descriptor: BLEDescriptor, callback: AsyncCallback<BLEDescriptor>) |            void             |      |
42|         读取描述符值promise          |   readDescripitorValue(promise)   |                 (descriptor: BLEDescriptor)                  |   Promise<BLEDescriptor>    |      |
43|              写入特征值              |     writeCharacteristicValue      |             (characteristic: BLECharacteristic)              |            void             |      |
44|             写入描述符值             |       writeDescripitorValue       |                 (descriptor: BLEDescriptor)                  |            void             |      |
45|            BLE特征值变化             |    on.BLECharacteristicChange     | (type: "BLECharacteristicChange", callback: Callback<BLECharacteristic>) |            void             |      |
46|            设定BLEMtu尺寸            |           setBLEMtuSize           |                        (mtu: number)                         |            void             |      |
47|           设置通知特性更改           |   setNotifyCharateristicChanged   |     (characteristic: BLECharacteristic, enable: boolean)     |            void             |      |
48|         获取设备名称callback         |      getDeviceName(callback)      |              (callback: AsyncCallback<string>)               |            void             |      |
49|         获取设备名称promise          |      getDeviceName(promise)       |                              ()                              |       Promise<string>       |      |
50|          获取Rssi值callback          |      getRssiValue(callback)       |              (callback: AsyncCallback<number>)               |            void             |      |
51|          获取Rssi值promise           |       getRssiValue(promise)       |                              ()                              |       Promise<number>       |      |
52
53>**接口所需的参数配置:**
54>
55>#### BLEConnectChangedState    描述Gatt profile连接状态
56>
57>| 名称     | 类型                       | 可读 | 可写 | 说明                                          |
58>| :------- | :------------------------- | :--- | :--- | :-------------------------------------------- |
59>| deviceId | string                     | 是   | 否   | 表示远端设备地址,例如:“XX:XX:XX:XX:XX:XX”。 |
60>| state    | **ProfileConnectionState** | 是   | 是   | 表示BLE连接状态的枚举。                       |
61>
62>
63>
64>#### ProfileConnectionState     枚举,蓝牙设备的profile连接状态
65>
66>| 名称                | 值   | 说明                  |
67>| :------------------ | :--- | :-------------------- |
68>| STATE_DISCONNECTED  | 0    | 表示profile已断连。   |
69>| STATE_CONNECTING    | 1    | 表示profile正在连接。 |
70>| STATE_CONNECTED     | 2    | 表示profile已连接。   |
71>| STATE_DISCONNECTING | 3    | 表示profile正在断连。 |
72>
73>
74>
75>#### GattService    描述service的接口参数定义
76>
77>| 名称            | 类型                         | 可读 | 可写 | 说明                                                         |
78>| :-------------- | :--------------------------- | :--- | :--- | :----------------------------------------------------------- |
79>| serviceUuid     | string                       | 是   | 是   | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 |
80>| isPrimary       | boolean                      | 是   | 是   | 如果是主服务设置为true,否则设置为false。                    |
81>| characteristics | Array<**BLECharacteristic**> | 是   | 是   | 当前服务包含的特征列表。                                     |
82>| includeServices | Array<**GattService**>       | 是   | 是   | 当前服务依赖的其它服务。                                     |
83>
84>
85>
86>#### BLECharacteristic    描述characteristic的接口参数定义
87>
88>| 名称                | 类型                     | 可读 | 可写 | 说明                                                         |
89>| :------------------ | :----------------------- | :--- | :--- | :----------------------------------------------------------- |
90>| serviceUuid         | string                   | 是   | 是   | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 |
91>| characteristicUuid  | string                   | 是   | 是   | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 |
92>| characteristicValue | ArrayBuffer              | 是   | 是   | 特征对应的二进制值。                                         |
93>| descriptors         | Array<**BLEDescriptor**> | 是   | 是   | 特定特征的描述符列表。                                       |
94>
95>
96>
97>#### BLEDescriptor   描述descriptor的接口参数定义
98>
99>| 名称               | 类型        | 可读 | 可写 | 说明                                                         |
100>| :----------------- | :---------- | :--- | :--- | :----------------------------------------------------------- |
101>| serviceUuid        | string      | 是   | 是   | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 |
102>| characteristicUuid | string      | 是   | 是   | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 |
103>| descriptorUuid     | string      | 是   | 是   | 描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。 |
104>| descriptorValue    | ArrayBuffer | 是   | 是   | 描述符对应的二进制值。                                       |
105
106
107
108#### Gatt_Client测试功能
109
110**"蓝牙打开"是其他功能测试的前提**
111
1121. 创造GattClientDevice
113
114   - 使用指导:点击"创造GattClient"后,创建一个JavaScript网关客户端设备实例。
115   - 限制条件:
116     - 蓝牙状态要打开,且GattClient不存在实例,并且会判断是否输入了MAC地址和MAC地址长度正确与否。
117     - @throws { BusinessError } 401 - Invalid parameter.
118     * @throws { BusinessError } 801 - Capability not supported.
119   - 验证方法:尝试可以去连接GattServer端的设备。
120
1212. 连接/取消连接
122
123   - 使用指导:
124
125     > 连接:连接到BLE外围设备。如果连接进程启动,返回信息为true;否则返回false。
126     >
127     > 订阅“BLEConnectionStateChange”事件(即"ble连接状态")可以返回连接状态。
128     >
129     > 取消连接:断开或停止与BLE外围设备的持续连接。如果断开连接过程开始,返回信息为true;否则返回false。
130
131   - 限制条件:
132
133     - 只有蓝牙打开且连接成功后,"连接"的返回信息才会显示"成功",才能成功取消连接设备。
134     - @throws { BusinessError } 201 - Permission denied.
135     * @throws { BusinessError } 801 - Capability not supported.
136     * @throws { BusinessError } 2900001 - Service stopped.
137     * @throws { BusinessError } 2900003 - Bluetooth switch is off.
138     - @throws { BusinessError } 2900099 - Operation failed.
139
140   - 验证方法:在设备设置上查看连接状态。如果成功连接正在advertise on的服务端,服务端会有连接响应。
141
1423. ble连接状态
143
144   - 使用指导:为回调函数,用来监听相关类型事件的变化,并弹窗显示信息。
145
146     > - 订阅客户端连接状态更改事件。
147     > - type为要侦听的连接状态更改事件的类型。
148     > - callback回调用于侦听连接状态更改事件。
149
150   - 限制条件:
151
152     - 需要在相关类型事件发生改变前,开启监听。且需要蓝牙打开,gatt客户端实例存在。
153     - @throws { BusinessError } 201 - Permission denied.
154     - @throws { BusinessError } 801 - Capability not supported.
155
156   - 验证方法:在事件变化后,查看是否有弹窗信息显示,或直接查看其BLE连接状态。
157
1584. 关闭
159
160   - 使用指导:禁用BLE外围设备。
161   - 限制条件:
162     - 创立了Gatt客户端实例后,此方法注销设备并清除已注册的callback和handle。
163     - @throws { BusinessError } 201 - Permission denied.
164     - @throws { BusinessError } 801 - Capability not supported.
165     - @throws { BusinessError } 2900001 - Service stopped.
166     - @throws { BusinessError } 2900099 - Operation failed.
167   - 验证方法:客户端已经关闭,无法连接server端。
168
1695. 获取服务callback/promise
170
171   - 使用指导:点击后,开始发现服务。返回的信息为BLE外围设备的服务GattService列表。
172   - 限制条件:
173     - Gatt客户端实例存在,连接设备的code不为0,ServerUUid正确。
174     - @throws { BusinessError } 201 - Permission denied.
175     - @throws { BusinessError } 401 - Invalid parameter.
176     - @throws { BusinessError } 801 - Capability not supported.
177     - @throws { BusinessError } 2900001 - Service stopped.
178     - @throws { BusinessError } 2900099 - Operation failed.
179   - 验证方法:查看返回信息与连接的服务是否相同。
180
1816. 读取特征值callback/promise
182
183   - 使用指导:点击后,读取BLE外围设备的特性。characteristic表示要读取的特征。
184   - 限制条件:
185     - Gatt客户端实例存在,连接设备的errcode为0,特征值UUid正确。
186     - @throws { BusinessError } 201 - Permission denied.
187     - @throws { BusinessError } 401 - Invalid parameter.
188     - @throws { BusinessError } 801 - Capability not supported.
189     - @throws { BusinessError } 2900001 - Service stopped.
190     - @throws { BusinessError } 2901000 - Read forbidden.
191     - @throws { BusinessError } 2900099 - Operation failed.
192   - 验证方法:查看返回信息与连接的特征值是否相同。
193
1947. 读取描述符值callback/promise
195
196   - 使用指导:点击后,读取BLE外围设备的描述符。descriptor表示要读取的描述符。
197   - 限制条件:
198     - Gatt客户端实例存在,连接设备的errcode为0,描述符UUid正确。
199     - @throws { BusinessError } 201 - Permission denied.
200     * @throws { BusinessError } 401 - Invalid parameter.
201     * @throws { BusinessError } 801 - Capability not supported.
202     * @throws { BusinessError } 2900001 - Service stopped.
203     * @throws { BusinessError } 2901000 - Read forbidden.
204     * @throws { BusinessError } 2900099 - Operation failed.
205   - 验证方法:查看返回信息与连接的描述符值是否相同。
206
2078. 写入特征值
208
209   - 使用指导:写入BLE外围设备的特性。characteristic表示要写入的特征。如果成功写入特征,返回true;否则返回false。
210   - 限制条件:
211     - Gatt客户端实例存在,有写入的特征值。
212     - @throws { BusinessError } 201 - Permission denied.
213     * @throws { BusinessError } 401 - Invalid parameter.
214     * @throws { BusinessError } 801 - Capability not supported.
215     * @throws { BusinessError } 2900001 - Service stopped.
216     * @throws { BusinessError } 2901001 - Write forbidden.
217     * @throws { BusinessError } 2900099 - Operation failed.
218   - 验证方法:用验证程序查看写入的特征值。
219
2209. 写入描述符值
221
222   - 使用指导:写入BLE外围设备的描述符。descriptor指示要写入的描述符。如果描述符写入成功,返回true;否则返回false。
223   - 限制条件:
224     - Gatt客户端实例存在,有写入的描述符值。
225     - @throws { BusinessError } 201 - Permission denied.
226     * @throws { BusinessError } 401 - Invalid parameter.
227     * @throws { BusinessError } 801 - Capability not supported.
228     * @throws { BusinessError } 2900001 - Service stopped.
229     * @throws { BusinessError } 2901001 - Write forbidden.
230     - @throws { BusinessError } 2900099 - Operation failed.
231   - 验证方法:用验证程序查看写入的描述符值。
232
23310. BLE特征值变化
234
235    - 使用指导:为回调函数,用来监听相关类型事件的变化,并弹窗显示信息。
236
237      >订阅特征值更改事件。
238      >
239      >type为要侦听的特征值更改事件的类型。
240      >
241      >callback回调用于侦听特征值更改事件。
242
243    - 限制条件:
244
245      - 需要在相关类型事件发生改变前,开启监听。
246      - @throws { BusinessError } 201 - Permission denied.
247      * @throws { BusinessError } 801 - Capability not supported.
248
249    - 验证方法:在事件变化后,查看是否有弹窗信息显示。
250
25111. 设定BLEMtu尺寸
252
253    - 使用指导:设置BLE外围设备的mtu大小。mtu最大传输单位。如果设置mtu成功,返回信息为true;否则返回false。
254    - 限制条件:
255      - 蓝牙需要打开,Gatt客户端实例存在。
256      - @throws { BusinessError } 201 - Permission denied.
257      * @throws { BusinessError } 401 - Invalid parameter.
258      * @throws { BusinessError } 801 - Capability not supported.
259      * @throws { BusinessError } 2900001 - Service stopped.
260      - @throws { BusinessError } 2900099 - Operation failed.
261    - 验证方法:查看显示结果。
262
26312. 设置通知特性更改
264
265    - 使用指导:启用或禁用值更改时的特征通知。enable指定是否启用特征通知。值为true时表示通知已启用,值为false时表示通知已禁用。如果特性通知被启用,返回true;否则返回false。
266    - 限制条件:
267      - 蓝牙需要打开,Gatt客户端实例存在,且需要传入UUid值。
268      - @throws { BusinessError } 201 - Permission denied.
269      * @throws { BusinessError } 401 - Invalid parameter.
270      * @throws { BusinessError } 801 - Capability not supported.
271      * @throws { BusinessError } 2900001 - Service stopped.
272      - @throws { BusinessError } 2900099 - Operation failed.
273    - 验证方法:查看特征值的变化。
274
27513. 获取设备名称_callback/promise
276
277    - 使用指导:获取BLE外围设备的名称。如果获得,返回名称的字符串表示形式;如果无法获取名称或名称不存在,则返回null。
278    - 限制条件:Gatt客户端实例存在,传入的Name值要正确。
279    - 验证方法:查看显示的结果。
280
28114. 获取Rssi值_callback/promise
282
283    - 使用指导:获取此BLE外围设备的RSSI值。return返回RSSI值。
284    - 限制条件:
285      - Gatt客户端实例存在,传入的Rssi值要正确。
286      - @throws { BusinessError } 201 - Permission denied.
287      - @throws { BusinessError } 401 - Invalid parameter.
288      - @throws { BusinessError } 801 - Capability not supported.
289      - @throws { BusinessError } 2900099 - Operation failed.
290    - 验证方法:查看显示的结果。
291
292---
293
294### Gatt服务器
295
296#### GattServerSetting界面
297
298点击"switch"图标,同样可以在setting界面修改MAC地址,ServerUUID,characteristicUuid,descriptorUuid的值。并且可以设置广播配置。默认值已经设置好,默认"设置"和"connectable"为已勾选的true,其他为false,如果测试时需要,可以手动设置"interval","txPower","Response"
299
300#### GattServer中的主要接口(ohos.bluetoothManager.d.ts)
301
302|   method名称   |        API名称         |                           所需参数                           |   返回值   | 备注 |
303| :------------: | :--------------------: | :----------------------------------------------------------: | :--------: | :--: |
304| 创建Gatt服务器 |    createGattServer    |                              ()                              | GattServer |      |
305|    添加服务    |       addService       |                    (service: GattService)                    |    void    |      |
306|    删除服务    |     removeService      |                    (serviceUuid: string)                     |    void    |      |
307|    开始广播    |    startAdvertising    | (setting: AdvertiseSetting, advData: AdvertiseData, advResponse?: AdvertiseData) |    void    |      |
308|    停止广播    |    stopAdvertising     |                              ()                              |    void    |      |
309|      关闭      |         close          |                              ()                              |    void    |      |
310|    连接状态    | on.connectStateChange  | (type: "connectStateChange", callback: Callback<BLEConnectChangedState>) |    void    |      |
311|   读取特征值   | on.characteristicRead  | (type: "characteristicRead", callback: Callback<CharacteristicReadReq>) |    void    |      |
312|   写入特征值   | on.characteristicWrite | (type: "characteristicWrite", callback: Callback<CharacteristicWriteReq>) |    void    |      |
313|   读取描述符   |   on.descriptorRead    | (type: "descriptorRead", callback: Callback<DescriptorReadReq>) |    void    |      |
314|   写入描述符   |   on.descriptorWrite   | (type: "descriptorWrite", callback: Callback<DescriptorWriteReq>) |    void    |      |
315
316>**接口所需的参数配置:**
317>
318>| 参数名      | 类型                 | 必填 | 说明                      |
319>| :---------- | :------------------- | :--- | :------------------------ |
320>| setting     | **AdvertiseSetting** | 是   | BLE广播的相关参数。       |
321>| advData     | **AdvertiseData**    | 是   | BLE广播包内容。           |
322>| advResponse | **AdvertiseData**    | 否   | BLE回复扫描请求回复响应。 |
323>
324>
325>
326>#### AdvertiseSetting   描述蓝牙低功耗设备发送广播的参数
327>
328>| 名称        | 类型    | 可读 | 可写 | 说明                                                         |
329>| :---------- | :------ | :--- | :--- | :----------------------------------------------------------- |
330>| interval    | number  | 是   | 是   | 表示广播间隔,最小值设置32个slot表示20ms,最大值设置16384个slot,默认值设置为1600个slot表示1s。 |
331>| txPower     | number  | 是   | 是   | 表示发送功率,最小值设置-127,最大值设置1,默认值设置-7,单位dbm。 |
332>| connectable | boolean | 是   | 是   | 表示是否是可连接广播,默认值设置为true。                     |
333>
334>
335>
336>#### AdvertiseData  描述BLE广播数据包的内容
337>
338>| 名称            | 类型                       | 可读 | 可写 | 说明                               |
339>| :-------------- | :------------------------- | :--- | :--- | :--------------------------------- |
340>| serviceUuids    | Array<string>              | 是   | 是   | 表示要广播的服务 UUID 列表。       |
341>| manufactureData | Array**<ManufactureData>** | 是   | 是   | 表示要广播的广播的制造商信息列表。 |
342>| serviceData     | Array**<ServiceData>**     | 是   | 是   | 表示要广播的服务数据列表。         |
343>
344>
345>
346>#### ManufactureData  描述BLE广播数据包的内容
347>
348>| 名称             | 类型        | 可读 | 可写 | 说明                            |
349>| :--------------- | :---------- | :--- | :--- | :------------------------------ |
350>| manufactureId    | number      | 是   | 是   | 表示制造商的ID,由蓝牙SIG分配。 |
351>| manufactureValue | ArrayBuffer | 是   | 是   | 表示制造商发送的制造商数据。    |
352>
353>
354>
355>#### ServiceData  描述广播包中服务数据内容
356>
357>| 名称         | 类型        | 可读 | 可写 | 说明             |
358>| :----------- | :---------- | :--- | :--- | :--------------- |
359>| serviceUuid  | string      | 是   | 是   | 表示服务的UUID。 |
360>| serviceValue | ArrayBuffer | 是   | 是   | 表示服务数据。   |
361
362#### Gatt_Server测试功能
363
3641. 创建Gatt服务器
365
366   - 使用指导:创建JavaScript网关服务器实例。return返回JavaScript网关服务器实例code网关服务器。
367
368   - 限制条件:蓝牙状态要打开,且GattServer不存在实例。
369
370   - 验证方法:可以尝试用Client端去搜索本设备的GattServer端。
371
372
373
3742. 添加/删除服务
375
376   - 使用指导:
377
378     >添加服务:
379     >
380     >- 添加要承载的指定服务,添加的服务及其特性由本地设备提供。
381     >
382     >- service表示要添加的服务。
383     >
384     >- 如果添加了服务,返回 true;否则返回 false。
385     >
386     >删除服务:
387     >
388     >- 从该设备提供的GATT服务列表中删除指定的服务。
389     >
390     >- serviceUuid表示要删除的服务的UUID。
391     >
392     >- 如果服务被删除,返回 true;否则返回 false。
393
394   - 限制条件:
395
396     - Gatt服务端实例要存在,并且要传入UUid和value的值。
397     - @throws { BusinessError } 201 - Permission denied.
398     - @throws { BusinessError } 401 - Invalid parameter.
399     - @throws { BusinessError } 801 - Capability not supported.
400     - @throws { BusinessError } 2900001 - Service stopped.
401     - @throws { BusinessError } 2900003 - Bluetooth switch is off.
402     - @throws { BusinessError } 2900099 - Operation failed.
403
404   - 验证方法:使用验证程序查看服务是否添加/删除成功。
405
406
407
4083. 开始/停止广播
409
410   - 使用指导:
411
412     >开始广播:
413     >
414     >- 启动BLE广播。
415     >- setting指示BLE广播的设置。如果需要使用默认值,将此参数设置为null。
416     >- advData表示广播数据。advResponse表示与广播数据关联的扫描响应。
417     >
418     >停止广播:停止BLE广播。
419
420   - 限制条件:
421
422     - 配置页面中勾选了"√",并传入了正确的配置信息。
423     - @throws { BusinessError } 201 - Permission denied.
424     * @throws { BusinessError } 401 - Invalid parameter.
425     * @throws { BusinessError } 801 - Capability not supported.
426     * @throws { BusinessError } 2900001 - Service stopped.
427     * @throws { BusinessError } 2900003 - Bluetooth switch is off.
428     - @throws { BusinessError } 2900099 - Operation failed.
429
430   - 验证方法:查看显示信息,使用client端设备去尝试搜索广播。
431
432
433
4344. 关闭
435
436   - 使用指导:关闭此{GattServer}对象并注销其回调。
437
438   - 限制条件:
439
440     - Server端存在,才可以关闭。
441     - @throws { BusinessError } 201 - Permission denied.
442     * @throws { BusinessError } 801 - Capability not supported.
443     * @throws { BusinessError } 2900001 - Service stopped.
444     * @throws { BusinessError } 2900003 - Bluetooth switch is off.
445     * @throws { BusinessError } 2900099 - Operation failed.
446
447   - 验证方法:Server端关闭,无法搜索到本设备的Server端。
448
449
450
4515. 连接状态
452
453   - 使用指导:为回调函数,用来监听相关类型事件的变化,并弹窗显示信息。
454
455     > 订阅服务器连接状态更改事件。
456     >
457     > type为要侦听的连接状态更改事件的类型。
458     >
459     > callback回调用于侦听连接状态更改事件。
460
461   - 限制条件:
462
463     - 需要在相关类型事件发生改变前,开启监听。
464     - @throws { BusinessError } 201 - Permission denied.
465     - @throws { BusinessError } 401 - Invalid parameter.
466     - @throws { BusinessError } 801 - Capability not supported.
467
468   - 验证方法:在事件变化后,查看是否有弹窗信息显示。
469
470
471
4726. 读取/写入特征值
473
474   - 使用指导:为回调函数,用来监听相关类型事件的变化,并弹窗显示信息。
475
476     >读取特征值:
477     >
478     >- 订阅特征读取事件。
479     >- type为要侦听的特征读取事件的类型。
480     >- callback回调用于侦听特征读取事件。
481     >
482     >写入特征值:
483     >
484     >- 订阅特征写入事件。
485     >- type为要侦听的特征写入事件的类型。
486     >- callback回调用于侦听特征写入事件。
487
488   - 限制条件:
489
490     - 需要在相关类型事件发生改变前,开启监听。
491     - @throws { BusinessError } 201 - Permission denied.
492     - @throws { BusinessError } 401 - Invalid parameter.
493     - @throws { BusinessError } 801 - Capability not supported.
494
495   - 验证方法:在事件变化后,查看是否有弹窗信息显示。
496
497
498
4997. 读取/写入描述符
500
501   - 使用指导:为回调函数,用来监听相关类型事件的变化,并弹窗显示信息。
502
503     >读取描述符值:
504     >
505     >- 订阅描述符写入事件。
506     >- type为要侦听的描述符写入事件的类型。
507     >- callback为回调用于侦听描述符写入事件。
508     >
509     >写入描述符值:
510     >
511     >- 订阅描述符读取事件。
512     >- type为要侦听的描述符读取事件的类型。
513     >- callback回调用于侦听描述符读取事件。
514
515   - 限制条件:
516
517     - 需要在相关类型事件发生改变前,开启监听。
518     - @throws { BusinessError } 201 - Permission denied.
519     * @throws { BusinessError } 401 - Invalid parameter.
520     * @throws { BusinessError } 801 - Capability not supported.
521
522   - 验证方法:在事件变化后,查看是否有弹窗信息显示。