1# @ohos.bluetooth (蓝牙) 2 3蓝牙模块提供了基础的传统蓝牙能力以及BLE的扫描、广播等功能。 4 5> **说明:** 6> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 7> 从API Version 9开始,该接口不再维护,推荐使用新接口[bluetoothManager](js-apis-bluetoothManager.md)。 8 9 10 11## 导入模块 12 13```js 14import bluetooth from '@ohos.bluetooth'; 15``` 16 17 18## bluetooth.enableBluetooth<sup>8+</sup><sup>(deprecated)</sup><a name="enableBluetooth"></a> 19 20enableBluetooth(): boolean 21 22开启蓝牙。 23 24> **说明:**<br/> 25> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.enableBluetooth](js-apis-bluetoothManager.md#bluetoothmanagerenablebluetooth)替代。 26 27**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 28 29**系统能力**:SystemCapability.Communication.Bluetooth.Core。 30 31**返回值:** 32 33| 类型 | 说明 | 34| ------- | ------------------------ | 35| boolean | 打开蓝牙,成功返回true,否则返回false。 | 36 37**示例:** 38 39```js 40let enable = bluetooth.enableBluetooth(); 41``` 42 43 44## bluetooth.disableBluetooth<sup>8+</sup><sup>(deprecated)</sup><a name="disableBluetooth"></a> 45 46disableBluetooth(): boolean 47 48关闭蓝牙。 49 50> **说明:**<br/> 51> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.disableBluetooth](js-apis-bluetoothManager.md#bluetoothmanagerdisablebluetooth)替代。 52 53**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 54 55**系统能力**:SystemCapability.Communication.Bluetooth.Core。 56 57**返回值:** 58 59| 类型 | 说明 | 60| ------- | ------------------------ | 61| boolean | 关闭蓝牙,成功返回true,否则返回false。 | 62 63**示例:** 64 65```js 66let disable = bluetooth.disableBluetooth(); 67``` 68 69 70## bluetooth.getLocalName<sup>8+</sup><sup>(deprecated)</sup><a name="getLocalName"></a> 71 72getLocalName(): string 73 74获取蓝牙本地设备名称。 75 76> **说明:**<br/> 77> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.getLocalName](js-apis-bluetoothManager.md#bluetoothmanagergetlocalname)替代。 78 79**需要权限**:ohos.permission.USE_BLUETOOTH 80 81**系统能力**:SystemCapability.Communication.Bluetooth.Core。 82 83**返回值:** 84 85| 类型 | 说明 | 86| ------ | --------- | 87| string | 蓝牙本地设备名称。 | 88 89**示例:** 90 91```js 92let localName = bluetooth.getLocalName(); 93``` 94 95 96## bluetooth.getState<sup>(deprecated)</sup><a name="getState"></a> 97 98getState(): BluetoothState 99 100获取蓝牙开关状态。 101 102> **说明:**<br/> 103> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.getState](js-apis-bluetoothManager.md#bluetoothmanagergetstate)替代。 104 105**需要权限**:ohos.permission.USE_BLUETOOTH 106 107**系统能力**:SystemCapability.Communication.Bluetooth.Core。 108 109**返回值:** 110 111| 类型 | 说明 | 112| --------------------------------- | --------- | 113| [BluetoothState](#bluetoothstate) | 表示蓝牙开关状态。 | 114 115**示例:** 116 117```js 118let state = bluetooth.getState(); 119``` 120 121 122## bluetooth.getBtConnectionState<sup>(deprecated)</sup><a name="getBtConnectionState"></a> 123 124getBtConnectionState(): ProfileConnectionState 125 126获取蓝牙本端的Profile连接状态,例如:任意一个支持的Profile连接状态为已连接,则此接口返回状态为已连接。 127 128> **说明:**<br/> 129> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.getBtConnectionState](js-apis-bluetoothManager.md#bluetoothmanagergetbtconnectionstate)替代。 130 131**需要权限**:ohos.permission.USE_BLUETOOTH 132 133**系统能力**:SystemCapability.Communication.Bluetooth.Core。 134 135**返回值:** 136 137| 类型 | 说明 | 138| ---------------------------------------- | ------------------- | 139| [ProfileConnectionState](#profileconnectionstate) | 表示蓝牙设备的Profile连接状态。 | 140 141**示例:** 142 143```js 144let connectionState = bluetooth.getBtConnectionState(); 145``` 146 147 148## bluetooth.setLocalName<sup>8+</sup><sup>(deprecated)</sup><a name="setLocalName"></a> 149 150setLocalName(name: string): boolean 151 152设置蓝牙本地设备名称。 153 154> **说明:**<br/> 155> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.setLocalName](js-apis-bluetoothManager.md#bluetoothmanagersetlocalname)替代。 156 157**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 158 159**系统能力**:SystemCapability.Communication.Bluetooth.Core。 160 161**参数:** 162 163| 参数名 | 类型 | 必填 | 说明 | 164| ---- | ------ | ---- | --------------------- | 165| name | string | 是 | 要设置的蓝牙名称,最大长度为248字节数。 | 166 167**返回值:** 168 169| 类型 | 说明 | 170| ------- | ------------------------------ | 171| boolean | 设置蓝牙本地设备名称,成功返回true,否则返回false。 | 172 173**示例:** 174 175```js 176let ret = bluetooth.setLocalName('device_name'); 177``` 178 179 180## bluetooth.pairDevice<sup>(deprecated)</sup><a name="pairDevice"></a> 181 182pairDevice(deviceId: string): boolean 183 184发起蓝牙配对。 185 186> **说明:**<br/> 187> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.pairDevice](js-apis-bluetoothManager.md#bluetoothmanagerpairdevice)替代。 188 189**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 190 191**系统能力**:SystemCapability.Communication.Bluetooth.Core。 192 193**参数:** 194 195| 参数名 | 类型 | 必填 | 说明 | 196| -------- | ------ | ---- | ----------------------------------- | 197| deviceId | string | 是 | 表示配对的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | 198 199**返回值:** 200 201| 类型 | 说明 | 202| ------- | -------------------------- | 203| boolean | 发起蓝牙配对,成功返回true,否则返回false。 | 204 205**示例:** 206 207```js 208// 实际的地址可由扫描流程获取 209let result = bluetooth.pairDevice("XX:XX:XX:XX:XX:XX"); 210``` 211 212 213## bluetooth.getProfileConnState<sup>8+</sup><sup>(deprecated)</sup><a name="getProfileConnState"></a> 214 215getProfileConnState(profileId: ProfileId): ProfileConnectionState 216 217依据ProfileId获取指定profile的连接状态。 218 219> **说明:**<br/> 220> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.getProfileConnectionState](js-apis-bluetoothManager.md#bluetoothmanagergetprofileconnectionstate)替代。 221 222**需要权限**:ohos.permission.USE_BLUETOOTH 223 224**系统能力**:SystemCapability.Communication.Bluetooth.Core。 225 226**参数:** 227 228| 参数名 | 类型 | 必填 | 说明 | 229| --------- | --------- | ---- | ------------------------------------- | 230| ProfileId | profileId | 是 | 表示profile的枚举值,例如:PROFILE_A2DP_SOURCE。 | 231 232**返回值:** 233 234| 类型 | 说明 | 235| ------------------------------------------------- | ------------------- | 236| [ProfileConnectionState](#profileconnectionstate) | profile的连接状态。 | 237 238**示例:** 239 240```js 241let result = bluetooth.getProfileConnState(bluetooth.ProfileId.PROFILE_A2DP_SOURCE); 242``` 243 244 245## bluetooth.cancelPairedDevice<sup>8+</sup><sup>(deprecated)</sup><a name="cancelPairedDevice"></a> 246 247cancelPairedDevice(deviceId: string): boolean 248 249删除配对的远程设备。 250 251> **说明:**<br/> 252> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.cancelPairedDevice](js-apis-bluetoothManager.md#bluetoothmanagercancelpaireddevice)替代。 253 254**系统接口**:此接口为系统接口。 255 256**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 257 258**系统能力**:SystemCapability.Communication.Bluetooth.Core。 259 260**参数:** 261 262| 参数名 | 类型 | 必填 | 说明 | 263| -------- | ------ | ---- | ------------------------------------- | 264| deviceId | string | 是 | 表示要删除的远程设备的地址,例如:"XX:XX:XX:XX:XX:XX"。 | 265 266**返回值:** 267 268| 类型 | 说明 | 269| ------- | -------------------------- | 270| boolean | 启动取消配对,成功返回true,否则返回false。 | 271 272**示例:** 273 274```js 275let result = bluetooth.cancelPairedDevice("XX:XX:XX:XX:XX:XX"); 276``` 277 278 279## bluetooth.getRemoteDeviceName<sup>8+</sup><sup>(deprecated)</sup><a name="getRemoteDeviceName"></a> 280 281getRemoteDeviceName(deviceId: string): string 282 283获取对端蓝牙设备的名称。 284 285> **说明:**<br/> 286> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.getRemoteDeviceName](js-apis-bluetoothManager.md#bluetoothmanagergetremotedevicename)替代。 287 288**需要权限**:ohos.permission.USE_BLUETOOTH 289 290**系统能力**:SystemCapability.Communication.Bluetooth.Core。 291 292**参数:** 293 294| 参数名 | 类型 | 必填 | 说明 | 295| -------- | ------ | ---- | --------------------------------- | 296| deviceId | string | 是 | 表示远程设备的地址,例如:"XX:XX:XX:XX:XX:XX"。 | 297 298**返回值:** 299 300| 类型 | 说明 | 301| ------ | ------------- | 302| string | 以字符串格式返回设备名称。 | 303 304**示例:** 305 306```js 307let remoteDeviceName = bluetooth.getRemoteDeviceName("XX:XX:XX:XX:XX:XX"); 308``` 309 310 311## bluetooth.getRemoteDeviceClass<sup>8+</sup><sup>(deprecated)</sup><a name="getRemoteDeviceClass"></a> 312 313getRemoteDeviceClass(deviceId: string): DeviceClass 314 315获取对端蓝牙设备的类别。 316 317> **说明:**<br/> 318> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.getRemoteDeviceClass](js-apis-bluetoothManager.md#bluetoothmanagergetremotedeviceclass)替代。 319 320**需要权限**:ohos.permission.USE_BLUETOOTH 321 322**系统能力**:SystemCapability.Communication.Bluetooth.Core。 323 324**参数:** 325 326| 参数名 | 类型 | 必填 | 说明 | 327| -------- | ------ | ---- | --------------------------------- | 328| deviceId | string | 是 | 表示远程设备的地址,例如:"XX:XX:XX:XX:XX:XX"。 | 329 330**返回值:** 331 332| 类型 | 说明 | 333| --------------------------- | -------- | 334| [DeviceClass](#deviceclass) | 远程设备的类别。 | 335 336**示例:** 337 338```js 339let remoteDeviceClass = bluetooth.getRemoteDeviceClass("XX:XX:XX:XX:XX:XX"); 340``` 341 342 343## bluetooth.getPairedDevices<sup>8+</sup><sup>(deprecated)</sup><a name="getPairedDevices"></a> 344 345getPairedDevices(): Array<string> 346 347获取蓝牙配对列表。 348 349> **说明:**<br/> 350> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.getPairedDevices](js-apis-bluetoothManager.md#bluetoothmanagergetpaireddevices)替代。 351 352**需要权限**:ohos.permission.USE_BLUETOOTH 353 354**系统能力**:SystemCapability.Communication.Bluetooth.Core。 355 356**返回值:** 357 358| 类型 | 说明 | 359| ------------------- | ------------- | 360| Array<string> | 已配对蓝牙设备的地址列表。 | 361 362**示例:** 363 364```js 365let devices = bluetooth.getPairedDevices(); 366``` 367 368 369## bluetooth.setBluetoothScanMode<sup>8+</sup><sup>(deprecated)</sup><a name="setBluetoothScanMode"></a> 370 371setBluetoothScanMode(mode: ScanMode, duration: number): boolean 372 373设置蓝牙扫描模式,可以被远端设备发现。 374 375> **说明:**<br/> 376> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.setBluetoothScanMode](js-apis-bluetoothManager.md#bluetoothmanagersetbluetoothscanmode)替代。 377 378**需要权限**:ohos.permission.USE_BLUETOOTH 379 380**系统能力**:SystemCapability.Communication.Bluetooth.Core。 381 382**参数:** 383 384| 参数名 | 类型 | 必填 | 说明 | 385| -------- | --------------------- | ---- | ---------------------------- | 386| mode | [ScanMode](#scanmode) | 是 | 蓝牙扫描模式。 | 387| duration | number | 是 | 设备可被发现的持续时间,单位为毫秒;设置为0则持续可发现。 | 388 389**返回值:** 390 391| 类型 | 说明 | 392| ------- | -------------------------- | 393| boolean | 设置蓝牙扫描,成功返回true,否则返回false。 | 394 395**示例:** 396 397```js 398// 设置为可连接可发现才可被远端设备扫描到,可以连接。 399let result = bluetooth.setBluetoothScanMode(bluetooth.ScanMode.SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE, 100); 400``` 401 402 403## bluetooth.getBluetoothScanMode<sup>8+</sup><sup>(deprecated)</sup><a name="getBluetoothScanMode"></a> 404 405getBluetoothScanMode(): ScanMode 406 407获取蓝牙扫描模式。 408 409> **说明:**<br/> 410> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.getBluetoothScanMode](js-apis-bluetoothManager.md#bluetoothmanagergetbluetoothscanmode)替代。 411 412**需要权限**:ohos.permission.USE_BLUETOOTH 413 414**系统能力**:SystemCapability.Communication.Bluetooth.Core。 415 416**返回值:** 417 418| 类型 | 说明 | 419| --------------------- | ------- | 420| [ScanMode](#scanmode) | 蓝牙扫描模式。 | 421 422**示例:** 423 424```js 425let scanMode = bluetooth.getBluetoothScanMode(); 426``` 427 428 429## bluetooth.startBluetoothDiscovery<sup>8+</sup><sup>(deprecated)</sup><a name="startBluetoothDiscovery"></a> 430 431startBluetoothDiscovery(): boolean 432 433开启蓝牙扫描,可以发现远端设备。 434 435> **说明:**<br/> 436> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.startBluetoothDiscovery](js-apis-bluetoothManager.md#bluetoothmanagerstartbluetoothdiscovery)替代。 437 438**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 和 ohos.permission.LOCATION 439 440**系统能力**:SystemCapability.Communication.Bluetooth.Core。 441 442**返回值:** 443 444| 类型 | 说明 | 445| ------- | -------------------------- | 446| boolean | 开启蓝牙扫描,成功返回true,否则返回false。 | 447 448**示例:** 449 450```js 451let deviceId; 452function onReceiveEvent(data) { 453 deviceId = data; 454} 455bluetooth.on('bluetoothDeviceFind', onReceiveEvent); 456let result = bluetooth.startBluetoothDiscovery(); 457``` 458 459 460## bluetooth.stopBluetoothDiscovery<sup>8+</sup><sup>(deprecated)</sup><a name="stopBluetoothDiscovery"></a> 461 462stopBluetoothDiscovery(): boolean 463 464关闭蓝牙扫描。 465 466> **说明:**<br/> 467> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.stopBluetoothDiscovery](js-apis-bluetoothManager.md#bluetoothmanagerstopbluetoothdiscovery)替代。 468 469**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 470 471**系统能力**:SystemCapability.Communication.Bluetooth.Core。 472 473**返回值:** 474 475| 类型 | 说明 | 476| ------- | -------------------------- | 477| boolean | 关闭蓝牙扫描,成功返回true,否则返回false。 | 478 479**示例:** 480 481```js 482let result = bluetooth.stopBluetoothDiscovery(); 483``` 484 485 486## bluetooth.setDevicePairingConfirmation<sup>8+</sup><sup>(deprecated)</sup><a name="setDevicePairingConfirmation"></a> 487 488setDevicePairingConfirmation(device: string, accept: boolean): boolean 489 490设置设备配对请求确认。 491 492> **说明:**<br/> 493> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.setDevicePairingConfirmation](js-apis-bluetoothManager.md#bluetoothmanagersetdevicepairingconfirmation)替代。 494 495**需要权限**:ohos.permission.MANAGE_BLUETOOTH 496 497**系统能力**:SystemCapability.Communication.Bluetooth.Core。 498 499**参数:** 500 501| 参数名 | 类型 | 必填 | 说明 | 502| ------ | ------- | ---- | -------------------------------- | 503| device | string | 是 | 表示远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | 504| accept | boolean | 是 | 接受配对请求设置为true,否则设置为false。 | 505 506**返回值:** 507 508| 类型 | 说明 | 509| ------- | ---------------------------- | 510| boolean | 设置设备配对确认,成功返回true,否则返回false。 | 511 512**示例:** 513 514```js 515// 订阅“pinRequired”配对请求事件,收到远端配对请求后设置配对确认 516function onReceivePinRequiredEvent(data) { // data为配对请求的入参,配对请求参数 517 console.info('pin required = '+ JSON.stringify(data)); 518 bluetooth.setDevicePairingConfirmation(data.deviceId, true); 519} 520bluetooth.on("pinRequired", onReceivePinRequiredEvent); 521``` 522 523 524## bluetooth.on('bluetoothDeviceFind')<sup>8+</sup><sup>(deprecated)</sup><a name="bluetoothDeviceFind"></a> 525 526on(type: "bluetoothDeviceFind", callback: Callback<Array<string>>): void 527 528订阅蓝牙设备发现上报事件。 529 530> **说明:**<br/> 531> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.on('bluetoothDeviceFind')](js-apis-bluetoothManager.md#bluetoothmanageronbluetoothdevicefind)替代。 532 533**需要权限**:ohos.permission.USE_BLUETOOTH 534 535**系统能力**:SystemCapability.Communication.Bluetooth.Core。 536 537**参数:** 538 539| 参数名 | 类型 | 必填 | 说明 | 540| -------- | ----------------------------------- | ---- | -------------------------------------- | 541| type | string | 是 | 填写"bluetoothDeviceFind"字符串,表示蓝牙设备发现事件。 | 542| callback | Callback<Array<string>> | 是 | 表示回调函数的入参,发现的设备集合。回调函数由用户创建通过该接口注册。 | 543 544**返回值:** 545 546无 547 548**示例:** 549 550```js 551function onReceiveEvent(data) { // data为蓝牙设备地址集合 552 console.info('bluetooth device find = '+ JSON.stringify(data)); 553} 554bluetooth.on('bluetoothDeviceFind', onReceiveEvent); 555``` 556 557 558## bluetooth.off('bluetoothDeviceFind')<sup>8+</sup><sup>(deprecated)</sup> 559 560off(type: "bluetoothDeviceFind", callback?: Callback<Array<string>>): void 561 562取消订阅蓝牙设备发现上报事件。 563 564> **说明:**<br/> 565> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.off('bluetoothDeviceFind')](js-apis-bluetoothManager.md#bluetoothmanageroffbluetoothdevicefind)替代。 566 567**需要权限**:ohos.permission.USE_BLUETOOTH 568 569**系统能力**:SystemCapability.Communication.Bluetooth.Core。 570 571**参数:** 572 573| 参数名 | 类型 | 必填 | 说明 | 574| -------- | ----------------------------------- | ---- | ---------------------------------------- | 575| type | string | 是 | 填写"bluetoothDeviceFind"字符串,表示蓝牙设备发现事件。 | 576| callback | Callback<Array<string>> | 否 | 表示取消订阅蓝牙设备发现事件上报。不填该参数则取消订阅该type对应的所有回调。 | 577 578**返回值:** 579 580无 581 582**示例:** 583 584```js 585function onReceiveEvent(data) { 586 console.info('bluetooth device find = '+ JSON.stringify(data)); 587} 588bluetooth.on('bluetoothDeviceFind', onReceiveEvent); 589bluetooth.off('bluetoothDeviceFind', onReceiveEvent); 590``` 591 592 593## bluetooth.on('pinRequired')<sup>8+</sup><sup>(deprecated)</sup> 594 595on(type: "pinRequired", callback: Callback<PinRequiredParam>): void 596 597订阅远端蓝牙设备的配对请求事件。 598 599> **说明:**<br/> 600> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.on('pinRequired')](js-apis-bluetoothManager.md#bluetoothmanageronpinrequired)替代。 601 602**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 603 604**系统能力**:SystemCapability.Communication.Bluetooth.Core。 605 606**参数:** 607 608| 参数名 | 类型 | 必填 | 说明 | 609| -------- | ---------------------------------------- | ---- | -------------------------------- | 610| type | string | 是 | 填写"pinRequired"字符串,表示配对请求事件。 | 611| callback | Callback<[PinRequiredParam](#pinrequiredparam)> | 是 | 表示回调函数的入参,配对请求。回调函数由用户创建通过该接口注册。 | 612 613**返回值:** 614 615无 616 617**示例:** 618 619```js 620function onReceiveEvent(data) { // data为配对请求参数 621 console.info('pin required = '+ JSON.stringify(data)); 622} 623bluetooth.on('pinRequired', onReceiveEvent); 624``` 625 626 627## bluetooth.off('pinRequired')<sup>8+</sup><sup>(deprecated)</sup> 628 629off(type: "pinRequired", callback?: Callback<PinRequiredParam>): void 630 631取消订阅远端蓝牙设备的配对请求事件。 632 633> **说明:**<br/> 634> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.off('pinRequired')](js-apis-bluetoothManager.md#bluetoothmanageroffpinrequired)替代。 635 636**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 637 638**系统能力**:SystemCapability.Communication.Bluetooth.Core。 639 640**参数:** 641 642| 参数名 | 类型 | 必填 | 说明 | 643| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 644| type | string | 是 | 填写"pinRequired"字符串,表示配对请求事件。 | 645| callback | Callback<[PinRequiredParam](#pinrequiredparam)> | 否 | 表示取消订阅蓝牙配对请求事件上报,入参为配对请求参数。不填该参数则取消订阅该type对应的所有回调。 | 646 647**返回值:** 648 649无 650 651**示例:** 652 653```js 654function onReceiveEvent(data) { 655 console.info('pin required = '+ JSON.stringify(data)); 656} 657bluetooth.on('pinRequired', onReceiveEvent); 658bluetooth.off('pinRequired', onReceiveEvent); 659``` 660 661 662## bluetooth.on('bondStateChange')<sup>8+</sup><sup>(deprecated)</sup> 663 664on(type: "bondStateChange", callback: Callback<BondStateParam>): void 665 666订阅蓝牙配对状态改变事件。 667 668> **说明:**<br/> 669> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.on('bondStateChange')](js-apis-bluetoothManager.md#bluetoothmanageronbondstatechange)替代。 670 671**需要权限**:ohos.permission.USE_BLUETOOTH 672 673**系统能力**:SystemCapability.Communication.Bluetooth.Core。 674 675**参数:** 676 677| 参数名 | 类型 | 必填 | 说明 | 678| -------- | ---------------------------------------- | ---- | ------------------------------------ | 679| type | string | 是 | 填写"bondStateChange"字符串,表示蓝牙配对状态改变事件。 | 680| callback | Callback<[BondStateParam](#BondStateParam)> | 是 | 表示回调函数的入参,配对的状态。回调函数由用户创建通过该接口注册。 | 681 682**返回值:** 683 684无 685 686**示例:** 687 688```js 689function onReceiveEvent(data) { // data为回调函数入参,表示配对的状态 690 console.info('pair state = '+ JSON.stringify(data)); 691} 692bluetooth.on('bondStateChange', onReceiveEvent); 693``` 694 695 696## bluetooth.off('bondStateChange')<sup>8+</sup><sup>(deprecated)</sup> 697 698off(type: "bondStateChange", callback?: Callback<BondStateParam>): void 699 700取消订阅蓝牙配对状态改变事件。 701 702> **说明:**<br/> 703> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.off('bondStateChange')](js-apis-bluetoothManager.md#bluetoothmanageroffbondstatechange)替代。 704 705**需要权限**:ohos.permission.USE_BLUETOOTH 706 707**系统能力**:SystemCapability.Communication.Bluetooth.Core。 708 709**参数:** 710 711| 参数名 | 类型 | 必填 | 说明 | 712| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 713| type | string | 是 | 填写"bondStateChange"字符串,表示蓝牙配对状态改变事件。 | 714| callback | Callback<[BondStateParam](#BondStateParam)> | 否 | 表示取消订阅蓝牙配对状态改变事件上报。不填该参数则取消订阅该type对应的所有回调。 | 715 716**返回值:** 717 718无 719 720**示例:** 721 722```js 723function onReceiveEvent(data) { 724 console.info('bond state = '+ JSON.stringify(data)); 725} 726bluetooth.on('bondStateChange', onReceiveEvent); 727bluetooth.off('bondStateChange', onReceiveEvent); 728``` 729 730 731## bluetooth.on('stateChange')<sup>8+</sup><sup>(deprecated)</sup> 732 733on(type: "stateChange", callback: Callback<BluetoothState>): void 734 735订阅蓝牙连接状态改变事件。 736 737> **说明:**<br/> 738> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.on('stateChange')](js-apis-bluetoothManager.md#bluetoothmanageronstatechange)替代。 739 740**需要权限**:ohos.permission.USE_BLUETOOTH 741 742**系统能力**:SystemCapability.Communication.Bluetooth.Core。 743 744**参数:** 745 746| 参数名 | 类型 | 必填 | 说明 | 747| -------- | ---------------------------------------- | ---- | -------------------------------- | 748| type | string | 是 | 填写"stateChange"字符串,表示蓝牙状态改变事件。 | 749| callback | Callback<[BluetoothState](#bluetoothstate)> | 是 | 表示回调函数的入参,蓝牙状态。回调函数由用户创建通过该接口注册。 | 750 751**返回值:** 752 753无 754 755**示例:** 756 757```js 758function onReceiveEvent(data) { 759 console.info('bluetooth state = '+ JSON.stringify(data)); 760} 761bluetooth.on('stateChange', onReceiveEvent); 762``` 763 764 765## bluetooth.off('stateChange')<sup>8+</sup><sup>(deprecated)</sup> 766 767off(type: "stateChange", callback?: Callback<BluetoothState>): void 768 769取消订阅蓝牙连接状态改变事件。 770 771> **说明:**<br/> 772> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.off('stateChange')](js-apis-bluetoothManager.md#bluetoothmanageroffstatechange)替代。 773 774**需要权限**:ohos.permission.USE_BLUETOOTH 775 776**系统能力**:SystemCapability.Communication.Bluetooth.Core。 777 778**参数:** 779 780| 参数名 | 类型 | 必填 | 说明 | 781| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 782| type | string | 是 | 填写"stateChange"字符串,表示蓝牙状态改变事件。 | 783| callback | Callback<[BluetoothState](#bluetoothstate)> | 否 | 表示取消订阅蓝牙状态改变事件上报。不填该参数则取消订阅该type对应的所有回调。 | 784 785**返回值:** 786 787无 788 789**示例:** 790 791```js 792function onReceiveEvent(data) { 793 console.info('bluetooth state = '+ JSON.stringify(data)); 794} 795bluetooth.on('stateChange', onReceiveEvent); 796bluetooth.off('stateChange', onReceiveEvent); 797``` 798 799 800## bluetooth.sppListen<sup>8+</sup><sup>(deprecated)</sup><a name="sppListen"></a> 801 802sppListen(name: string, option: SppOption, callback: AsyncCallback<number>): void 803 804创建一个服务端监听Socket。 805 806> **说明:**<br/> 807> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.sppListen](js-apis-bluetoothManager.md#bluetoothmanagerspplisten)替代。 808 809**需要权限**:ohos.permission.USE_BLUETOOTH 810 811**系统能力**:SystemCapability.Communication.Bluetooth.Core。 812 813**参数:** 814 815| 参数名 | 类型 | 必填 | 说明 | 816| -------- | --------------------------- | ---- | ----------------------- | 817| name | string | 是 | 服务的名称。 | 818| option | [SppOption](#sppoption) | 是 | spp监听配置参数。 | 819| callback | AsyncCallback<number> | 是 | 表示回调函数的入参,服务端Socket的id。 | 820 821**示例:** 822 823```js 824let serverNumber = -1; 825function serverSocket(code, number) { 826 console.log('bluetooth error code: ' + code.code); 827 if (code.code == 0) { 828 console.log('bluetooth serverSocket Number: ' + number); 829 serverNumber = number; 830 } 831} 832 833let sppOption = {uuid: '00001810-0000-1000-8000-00805F9B34FB', secure: false, type: 0}; 834bluetooth.sppListen('server1', sppOption, serverSocket); 835``` 836 837 838## bluetooth.sppAccept<sup>8+</sup><sup>(deprecated)</sup><a name="sppAccept"></a> 839 840sppAccept(serverSocket: number, callback: AsyncCallback<number>): void 841 842服务端监听socket等待客户端连接。 843 844> **说明:**<br/> 845> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.sppAccept](js-apis-bluetoothManager.md#bluetoothmanagersppaccept)替代。 846 847**系统能力**:SystemCapability.Communication.Bluetooth.Core。 848 849**参数:** 850 851| 参数名 | 类型 | 必填 | 说明 | 852| ------------ | --------------------------- | ---- | ----------------------- | 853| serverSocket | number | 是 | 服务端socket的id。 | 854| callback | AsyncCallback<number> | 是 | 表示回调函数的入参,客户端socket的id。 | 855 856**示例:** 857 858```js 859let serverNumber = -1; 860function serverSocket(code, number) { 861 console.log('bluetooth error code: ' + code.code); 862 if (code.code == 0) { 863 console.log('bluetooth serverSocket Number: ' + number); 864 serverNumber = number; 865 } 866} 867let clientNumber = -1; 868function acceptClientSocket(code, number) { 869 console.log('bluetooth error code: ' + code.code); 870 if (code.code == 0) { 871 console.log('bluetooth clientSocket Number: ' + number); 872 // 获取的clientNumber用作服务端后续读/写操作socket的id。 873 clientNumber = number; 874 } 875} 876bluetooth.sppAccept(serverNumber, acceptClientSocket); 877``` 878 879 880## bluetooth.sppConnect<sup>8+</sup><sup>(deprecated)</sup><a name="sppConnect"></a> 881 882sppConnect(device: string, option: SppOption, callback: AsyncCallback<number>): void 883 884客户端向远端设备发起spp连接。 885 886> **说明:**<br/> 887> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.sppConnect](js-apis-bluetoothManager.md#bluetoothmanagersppconnect)替代。 888 889**需要权限**:ohos.permission.USE_BLUETOOTH 890 891**系统能力**:SystemCapability.Communication.Bluetooth.Core。 892 893**参数:** 894 895| 参数名 | 类型 | 必填 | 说明 | 896| -------- | --------------------------- | ---- | ------------------------------ | 897| device | string | 是 | 对端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | 898| option | [SppOption](#sppoption) | 是 | spp客户端连接配置参数。 | 899| callback | AsyncCallback<number> | 是 | 表示回调函数的入参,客户端socket的id。 | 900 901**示例:** 902 903```js 904 905let clientNumber = -1; 906function clientSocket(code, number) { 907 if (code.code != 0) { 908 return; 909 } 910 console.log('bluetooth serverSocket Number: ' + number); 911 // 获取的clientNumber用作客户端后续读/写操作socket的id。 912 clientNumber = number; 913} 914let sppOption = {uuid: '00001810-0000-1000-8000-00805F9B34FB', secure: false, type: 0}; 915bluetooth.sppConnect('XX:XX:XX:XX:XX:XX', sppOption, clientSocket); 916``` 917 918 919## bluetooth.sppCloseServerSocket<sup>8+</sup><sup>(deprecated)</sup><a name="sppCloseServerSocket"></a> 920 921sppCloseServerSocket(socket: number): void 922 923关闭服务端监听Socket,入参socket由sppListen接口返回。 924 925> **说明:**<br/> 926> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.sppCloseServerSocket](js-apis-bluetoothManager.md#bluetoothmanagersppcloseserversocket)替代。 927 928**系统能力**:SystemCapability.Communication.Bluetooth.Core。 929 930**参数:** 931 932| 参数名 | 类型 | 必填 | 说明 | 933| ------ | ------ | ---- | --------------- | 934| socket | number | 是 | 服务端监听socket的id。 | 935 936**示例:** 937 938```js 939let serverNumber = -1; 940function serverSocket(code, number) { 941 console.log('bluetooth error code: ' + code.code); 942 if (code.code == 0) { 943 console.log('bluetooth serverSocket Number: ' + number); 944 serverNumber = number; 945 } 946} 947bluetooth.sppCloseServerSocket(serverNumber); 948``` 949 950 951## bluetooth.sppCloseClientSocket<sup>8+</sup><sup>(deprecated)</sup><a name="sppCloseClientSocket"></a> 952 953sppCloseClientSocket(socket: number): void 954 955关闭客户端socket,入参socket由sppAccept或sppConnect接口获取。 956 957> **说明:**<br/> 958> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.sppCloseClientSocket](js-apis-bluetoothManager.md#bluetoothmanagersppcloseclientsocket)替代。 959 960**系统能力**:SystemCapability.Communication.Bluetooth.Core。 961 962**参数:** 963 964| 参数名 | 类型 | 必填 | 说明 | 965| ------ | ------ | ---- | ------------- | 966| 参数名 | 类型 | 必填 | 说明 | 967| socket | number | 是 | 客户端socket的id。 | 968 969**示例:** 970 971```js 972let clientNumber = -1; 973function clientSocket(code, number) { 974 if (code.code != 0) { 975 return; 976 } 977 console.log('bluetooth serverSocket Number: ' + number); 978 // 获取的clientNumber用作客户端后续读/写操作socket的id。 979 clientNumber = number; 980} 981bluetooth.sppCloseClientSocket(clientNumber); 982``` 983 984 985## bluetooth.sppWrite<sup>8+</sup><sup>(deprecated)</sup><a name="sppWrite"></a> 986 987sppWrite(clientSocket: number, data: ArrayBuffer): boolean 988 989通过socket向远端发送数据,入参clientSocket由sppAccept或sppConnect接口获取 。 990 991> **说明:**<br/> 992> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.sppWrite](js-apis-bluetoothManager.md#bluetoothmanagersppwrite)替代。 993 994**系统能力**:SystemCapability.Communication.Bluetooth.Core。 995 996**参数:** 997 998| 参数名 | 类型 | 必填 | 说明 | 999| ------------ | ----------- | ---- | ------------- | 1000| clientSocket | number | 是 | 客户端socket的id。 | 1001| data | ArrayBuffer | 是 | 写入的数据。 | 1002 1003**返回值:** 1004 1005| 类型 | 说明 | 1006| ------- | ------------------------- | 1007| boolean | 写数据操作,成功返回true,否则返回false。 | 1008 1009**示例:** 1010 1011```js 1012let clientNumber = -1; 1013function clientSocket(code, number) { 1014 if (code.code != 0) { 1015 return; 1016 } 1017 console.log('bluetooth serverSocket Number: ' + number); 1018 // 获取的clientNumber用作客户端后续读/写操作socket的id。 1019 clientNumber = number; 1020} 1021let arrayBuffer = new ArrayBuffer(8); 1022let data = new Uint8Array(arrayBuffer); 1023data[0] = 123; 1024let ret = bluetooth.sppWrite(clientNumber, arrayBuffer); 1025if (ret) { 1026 console.log('spp write successfully'); 1027} else { 1028 console.log('spp write failed'); 1029} 1030``` 1031 1032 1033## bluetooth.on('sppRead')<sup>8+</sup><sup>(deprecated)</sup> 1034 1035on(type: "sppRead", clientSocket: number, callback: Callback<ArrayBuffer>): void 1036 1037> **说明:**<br/> 1038> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.on('sppRead')](js-apis-bluetoothManager.md#bluetoothmanageronsppread)替代。 1039 1040订阅spp读请求事件,入参clientSocket由sppAccept或sppConnect接口获取。 1041 1042**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1043 1044**参数:** 1045 1046| 参数名 | 类型 | 必填 | 说明 | 1047| ------------ | --------------------------- | ---- | -------------------------- | 1048| type | string | 是 | 填写"sppRead"字符串,表示spp读请求事件。 | 1049| clientSocket | number | 是 | 客户端socket的id。 | 1050| callback | Callback<ArrayBuffer> | 是 | 表示回调函数的入参,读取到的数据。 | 1051 1052**返回值:** 1053 1054无 1055 1056**示例:** 1057 1058```js 1059let clientNumber = -1; 1060function clientSocket(code, number) { 1061 if (code.code != 0) { 1062 return; 1063 } 1064 console.log('bluetooth serverSocket Number: ' + number); 1065 // 获取的clientNumber用作客户端后续读/写操作socket的id。 1066 clientNumber = number; 1067} 1068function dataRead(dataBuffer) { 1069 let data = new Uint8Array(dataBuffer); 1070 console.log('bluetooth data is: ' + data[0]); 1071} 1072bluetooth.on('sppRead', clientNumber, dataRead); 1073``` 1074 1075 1076## bluetooth.off('sppRead')<sup>8+</sup><sup>(deprecated)</sup> 1077 1078off(type: "sppRead", clientSocket: number, callback?: Callback<ArrayBuffer>): void 1079 1080取消订阅spp读请求事件,入参clientSocket由sppAccept或sppConnect接口获取。 1081 1082> **说明:**<br/> 1083> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.off('sppRead')](js-apis-bluetoothManager.md#bluetoothmanageroffsppread)替代。 1084 1085**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1086 1087**参数:** 1088 1089| 参数名 | 类型 | 必填 | 说明 | 1090| ------------ | --------------------------- | ---- | ---------------------------------------- | 1091| type | string | 是 | 填写"sppRead"字符串,表示spp读请求事件。 | 1092| clientSocket | number | 是 | 客户端Socket的id。 | 1093| callback | Callback<ArrayBuffer> | 否 | 表示取消订阅spp读请求事件上报。不填该参数则取消订阅该type对应的所有回调。 | 1094 1095**返回值:** 1096 1097无 1098 1099**示例:** 1100 1101```js 1102let clientNumber = -1; 1103function clientSocket(code, number) { 1104 if (code.code != 0) { 1105 return; 1106 } 1107 console.log('bluetooth serverSocket Number: ' + number); 1108 // 获取的clientNumber用作客户端后续读/写操作socket的id。 1109 clientNumber = number; 1110} 1111bluetooth.off('sppRead', clientNumber); 1112``` 1113 1114 1115## bluetooth.getProfile<sup>8+</sup><sup>(deprecated)</sup><a name="bt-getProfile"></a> 1116 1117getProfile(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile 1118 1119通过ProfileId,获取profile的对象实例。 1120 1121> **说明:**<br/> 1122> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.getProfileInstance](js-apis-bluetoothManager.md#bluetoothmanagergetprofileinstance)替代。 1123 1124**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1125 1126**参数:** 1127 1128| 参数名 | 类型 | 必填 | 说明 | 1129| --------- | --------- | ---- | ------------------------------------- | 1130| profileId | [ProfileId](#ProfileId) | 是 | 表示profile的枚举值,例如:PROFILE_A2DP_SOURCE。 | 1131 1132**返回值:** 1133 1134| 类型 | 说明 | 1135| ------------------------------------------------------------ | ------------------------------------------------------------ | 1136| [A2dpSourceProfile](#a2dpsourceprofile)或[HandsFreeAudioGatewayProfile](#handsfreeaudiogatewayprofile) | 对应的profile的对象实例,当前支持A2dpSourceProfile, HandsFreeAudioGatewayProfile。 | 1137 1138**示例:** 1139 1140```js 1141let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE); 1142``` 1143 1144 1145## bluetooth.BLE 1146 1147### bluetooth.BLE.createGattServer<sup>(deprecated)</sup> 1148 1149createGattServer(): GattServer 1150 1151创建一个可使用的GattServer实例。 1152 1153> **说明:**<br/> 1154> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.BLE.createGattServer](js-apis-bluetoothManager.md#bluetoothmanagerblecreategattserver)替代。 1155 1156**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1157 1158**返回值:** 1159 1160| 类型 | 说明 | 1161| ------------------------- | ------------------------------------ | 1162| [GattServer](#gattserver) | server端类,使用server端方法之前需要创建该类的实例进行操作。 | 1163 1164**示例:** 1165 1166```js 1167let gattServer = bluetooth.BLE.createGattServer(); 1168``` 1169 1170 1171### bluetooth.BLE.createGattClientDevice<sup>(deprecated)</sup> 1172 1173createGattClientDevice(deviceId: string): GattClientDevice 1174 1175创建一个可使用的GattClientDevice实例。 1176 1177> **说明:**<br/> 1178> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.BLE.createGattClientDevice](js-apis-bluetoothManager.md#bluetoothmanagerblecreategattclientdevice)替代。 1179 1180**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1181 1182**参数:** 1183 1184| 参数名 | 类型 | 必填 | 说明 | 1185| -------- | ------ | ---- | ------------------------------------ | 1186| deviceId | string | 是 | 对端设备地址, 例如:"XX:XX:XX:XX:XX:XX"。 | 1187 1188**返回值:** 1189 1190| 类型 | 说明 | 1191| ------------------------------------- | ------------------------------------ | 1192| [GattClientDevice](#gattclientdevice) | client端类,使用client端方法之前需要创建该类的实例进行操作。 | 1193 1194**示例:** 1195 1196```js 1197let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 1198``` 1199 1200 1201### bluetooth.BLE.getConnectedBLEDevices<sup>(deprecated)</sup> 1202 1203getConnectedBLEDevices(): Array<string> 1204 1205获取和当前设备连接的BLE设备。 1206 1207> **说明:**<br/> 1208> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.BLE.getConnectedBLEDevices](js-apis-bluetoothManager.md#bluetoothmanagerblegetconnectedbledevices)替代。 1209 1210**需要权限**:ohos.permission.USE_BLUETOOTH 1211 1212**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1213 1214**返回值:** 1215 1216| 类型 | 说明 | 1217| ------------------- | ------------------- | 1218| Array<string> | 返回当前设备作为Server端时连接BLE设备地址集合。 | 1219 1220**示例:** 1221 1222```js 1223let result = bluetooth.BLE.getConnectedBLEDevices(); 1224``` 1225 1226 1227### bluetooth.BLE.startBLEScan<sup>(deprecated)</sup> 1228 1229startBLEScan(filters: Array<ScanFilter>, options?: ScanOptions): void 1230 1231发起BLE扫描流程。 1232 1233> **说明:**<br/> 1234> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.BLE.startBLEScan](js-apis-bluetoothManager.md#bluetoothmanagerblestartblescan)替代。 1235 1236**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 和 ohos.permission.MANAGE_BLUETOOTH 和 ohos.permission.LOCATION 1237 1238**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1239 1240**参数:** 1241 1242| 参数名 | 类型 | 必填 | 说明 | 1243| ------- | -------------------------------------- | ---- | ----------------------------------- | 1244| filters | Array<[ScanFilter](#scanfilter)> | 是 | 表示扫描结果过滤策略集合,如果不使用过滤的方式,该参数设置为null。 | 1245| options | [ScanOptions](#scanoptions) | 否 | 表示扫描的参数配置,可选参数。 | 1246 1247**返回值:** 1248 1249无 1250 1251**示例:** 1252 1253```js 1254function onReceiveEvent(data) { 1255 console.info('BLE scan device find result = '+ JSON.stringify(data)); 1256} 1257bluetooth.BLE.on("BLEDeviceFind", onReceiveEvent); 1258bluetooth.BLE.startBLEScan( 1259 [{ 1260 deviceId:"XX:XX:XX:XX:XX:XX", 1261 name:"test", 1262 serviceUuid:"00001888-0000-1000-8000-00805f9b34fb" 1263 }], 1264 { 1265 interval: 500, 1266 dutyMode: bluetooth.ScanDuty.SCAN_MODE_LOW_POWER, 1267 matchMode: bluetooth.MatchMode.MATCH_MODE_AGGRESSIVE, 1268 } 1269); 1270``` 1271 1272 1273### bluetooth.BLE.stopBLEScan<sup>(deprecated)</sup> 1274 1275stopBLEScan(): void 1276 1277停止BLE扫描流程。 1278 1279> **说明:**<br/> 1280> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.BLE.stopBLEScan](js-apis-bluetoothManager.md#bluetoothmanagerblestopblescan)替代。 1281 1282**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 1283 1284**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1285 1286**返回值:** 1287 1288无 1289 1290**示例:** 1291 1292```js 1293bluetooth.BLE.stopBLEScan(); 1294``` 1295 1296 1297### bluetooth.BLE.on('BLEDeviceFind')<sup>(deprecated)</sup> 1298 1299on(type: "BLEDeviceFind", callback: Callback<Array<ScanResult>>): void 1300 1301订阅BLE设备发现上报事件。 1302 1303> **说明:**<br/> 1304> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.BLE.on('BLEDeviceFind')](js-apis-bluetoothManager.md#bluetoothmanagerbleonbledevicefind)替代。 1305 1306**需要权限**:ohos.permission.USE_BLUETOOTH 1307 1308**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1309 1310**参数:** 1311 1312| 参数名 | 类型 | 必填 | 说明 | 1313| -------- | ---------------------------------------- | ---- | ----------------------------------- | 1314| type | string | 是 | 填写"BLEDeviceFind"字符串,表示BLE设备发现事件。 | 1315| callback | Callback<Array<[ScanResult](#scanresult)>> | 是 | 表示回调函数的入参,发现的设备集合。回调函数由用户创建通过该接口注册。 | 1316 1317**返回值:** 1318 1319无 1320 1321**示例:** 1322 1323```js 1324function onReceiveEvent(data) { 1325 console.info('bluetooth device find = '+ JSON.stringify(data)); 1326} 1327bluetooth.BLE.on('BLEDeviceFind', onReceiveEvent); 1328``` 1329 1330 1331### bluetooth.BLE.off('BLEDeviceFind')<sup>(deprecated)</sup> 1332 1333off(type: "BLEDeviceFind", callback?: Callback<Array<ScanResult>>): void 1334 1335取消订阅BLE设备发现上报事件。 1336 1337> **说明:**<br/> 1338> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.BLE.off('BLEDeviceFind')](js-apis-bluetoothManager.md#bluetoothmanagerbleoffbledevicefind)替代。 1339 1340**需要权限**:ohos.permission.USE_BLUETOOTH 1341 1342**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1343 1344**参数:** 1345 1346| 参数名 | 类型 | 必填 | 说明 | 1347| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 1348| type | string | 是 | 填写"BLEDeviceFind"字符串,表示BLE设备发现事件。 | 1349| callback | Callback<Array<[ScanResult](#scanresult)>> | 否 | 表示取消订阅BLE设备发现事件上报。不填该参数则取消订阅该type对应的所有回调。 | 1350 1351**返回值:** 1352 1353无 1354 1355**示例:** 1356 1357```js 1358function onReceiveEvent(data) { 1359 console.info('bluetooth device find = '+ JSON.stringify(data)); 1360} 1361bluetooth.BLE.on('BLEDeviceFind', onReceiveEvent); 1362bluetooth.BLE.off('BLEDeviceFind', onReceiveEvent); 1363``` 1364 1365 1366## BaseProfile 1367 1368profile基类。 1369 1370 1371### getConnectionDevices<sup>8+</sup><sup>(deprecated)</sup><a name="getConnectionDevices"></a> 1372 1373getConnectionDevices(): Array<string> 1374 1375获取已连接设备列表。 1376 1377> **说明:**<br/> 1378> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.BaseProfile.getConnectionDevices](js-apis-bluetoothManager.md#getconnectiondevices)替代。 1379 1380**需要权限**:ohos.permission.USE_BLUETOOTH 1381 1382**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1383 1384**返回值:** 1385 1386| 类型 | 说明 | 1387| ------------------- | ------------- | 1388| Array<string> | 返回已连接设备的地址列表。 | 1389 1390**示例:** 1391 1392```js 1393let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE) as bluetooth.A2dpSourceProfile; 1394let retArray = a2dpSrc.getConnectionDevices(); 1395``` 1396 1397### getDeviceState<sup>8+</sup><sup>(deprecated)</sup><a name="getDeviceState"></a> 1398 1399getDeviceState(device: string): ProfileConnectionState 1400 1401获取设备profile的连接状态。 1402 1403> **说明:**<br/> 1404> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.BaseProfile.getDeviceState](js-apis-bluetoothManager.md#getdevicestate)替代。 1405 1406**需要权限**:ohos.permission.USE_BLUETOOTH 1407 1408**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1409 1410**参数:** 1411 1412| 参数名 | 类型 | 必填 | 说明 | 1413| ------ | ------ | ---- | ------- | 1414| device | string | 是 | 远端设备地址。 | 1415 1416**返回值:** 1417 1418| 类型 | 说明 | 1419| ------------------------------------------------- | ----------------------- | 1420| [ProfileConnectionState](#profileconnectionstate) | 返回profile的连接状态。 | 1421 1422**示例:** 1423 1424```js 1425let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE) as bluetooth.A2dpSourceProfile; 1426let ret = a2dpSrc.getDeviceState('XX:XX:XX:XX:XX:XX'); 1427``` 1428 1429## A2dpSourceProfile 1430 1431使用A2dpSourceProfile方法之前需要创建该类的实例进行操作,通过getProfile()方法构造此实例。 1432 1433 1434### connect<sup>8+</sup><sup>(deprecated)</sup><a name="a2dp-connect"></a> 1435 1436connect(device: string): boolean 1437 1438发起设备的A2dp服务连接请求。 1439 1440> **说明:**<br/> 1441> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.A2dpSourceProfile.connect](js-apis-bluetoothManager.md#connect)替代。 1442 1443**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 1444 1445**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1446 1447**参数:** 1448 1449| 参数名 | 类型 | 必填 | 说明 | 1450| ------ | ------ | ---- | ------- | 1451| device | string | 是 | 远端设备地址。 | 1452 1453**返回值:** 1454 1455| 类型 | 说明 | 1456| ------- | ------------------- | 1457| boolean | 成功返回true,失败返回false。 | 1458 1459**示例:** 1460 1461```js 1462let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE) as bluetooth.A2dpSourceProfile; 1463let ret = a2dpSrc.connect('XX:XX:XX:XX:XX:XX'); 1464``` 1465 1466 1467### disconnect<sup>8+</sup><sup>(deprecated)</sup><a name="a2dp-disconnect"></a> 1468 1469disconnect(device: string): boolean 1470 1471断开设备的a2dp服务连接。 1472 1473> **说明:**<br/> 1474> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.A2dpSourceProfile.disconnect](js-apis-bluetoothManager.md#disconnect)替代。 1475 1476**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 1477 1478**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1479 1480**参数:** 1481 1482| 参数名 | 类型 | 必填 | 说明 | 1483| ------ | ------ | ---- | ------- | 1484| device | string | 是 | 远端设备地址。 | 1485 1486**返回值:** 1487 1488| 类型 | 说明 | 1489| ------- | ------------------- | 1490| boolean | 成功返回true,失败返回false。 | 1491 1492**示例:** 1493 1494```js 1495let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE) as bluetooth.A2dpSourceProfile; 1496let ret = a2dpSrc.disconnect('XX:XX:XX:XX:XX:XX'); 1497``` 1498 1499 1500### on('connectionStateChange')<sup>8+</sup><sup>(deprecated)</sup> 1501 1502on(type: "connectionStateChange", callback: Callback<[StateChangeParam](#StateChangeParam)>): void 1503 1504订阅a2dp连接状态变化事件。 1505 1506> **说明:**<br/> 1507> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.A2dpSourceProfile.on('connectionStateChange')](js-apis-bluetoothManager.md#onconnectionstatechange)替代。 1508 1509**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1510 1511**参数:** 1512 1513| 参数名 | 类型 | 必填 | 说明 | 1514| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 1515| type | string | 是 | 填写"connectionStateChange"字符串,表示连接状态变化事件。 | 1516| callback | Callback<[StateChangeParam](#StateChangeParam)> | 是 | 表示回调函数的入参。 | 1517 1518**返回值:** 1519 1520无 1521 1522**示例:** 1523 1524```js 1525function onReceiveEvent(data) { 1526 console.info('a2dp state = '+ JSON.stringify(data)); 1527} 1528let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE) as bluetooth.A2dpSourceProfile; 1529a2dpSrc.on('connectionStateChange', onReceiveEvent); 1530``` 1531 1532 1533### off('connectionStateChange')<sup>8+</sup><sup>(deprecated)</sup> 1534 1535off(type: "connectionStateChange", callback?: Callback<[StateChangeParam](#StateChangeParam)>): void 1536 1537取消订阅a2dp连接状态变化事件。 1538 1539> **说明:**<br/> 1540> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.A2dpSourceProfile.off('connectionStateChange')](js-apis-bluetoothManager.md#offconnectionstatechange)替代。 1541 1542**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1543 1544**参数:** 1545 1546| 参数名 | 类型 | 必填 | 说明 | 1547| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 1548| type | string | 是 | 填写"connectionStateChange"字符串,表示连接状态变化事件。 | 1549| callback | Callback<[StateChangeParam](#StateChangeParam)> | 否 | 表示回调函数的入参。 | 1550 1551**返回值:** 1552 1553无 1554 1555**示例:** 1556 1557```js 1558function onReceiveEvent(data) { 1559 console.info('a2dp state = '+ JSON.stringify(data)); 1560} 1561let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE) as bluetooth.A2dpSourceProfile; 1562a2dpSrc.on('connectionStateChange', onReceiveEvent); 1563a2dpSrc.off('connectionStateChange', onReceiveEvent); 1564``` 1565 1566 1567### getPlayingState<sup>8+</sup><sup>(deprecated)</sup> 1568 1569getPlayingState(device: string): PlayingState 1570 1571获取设备的播放状态。 1572 1573> **说明:**<br/> 1574> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.A2dpSourceProfile.getPlayingState](js-apis-bluetoothManager.md#getplayingstate)替代。 1575 1576**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1577 1578**参数:** 1579 1580| 参数名 | 类型 | 必填 | 说明 | 1581| ------ | ------ | ---- | ------- | 1582| device | string | 是 | 远端设备地址。 | 1583 1584**返回值:** 1585 1586| 类型 | 说明 | 1587| ----------------------------- | ---------- | 1588| [PlayingState](#PlayingState) | 远端设备的播放状态。 | 1589 1590**示例:** 1591 1592```js 1593let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE) as bluetooth.A2dpSourceProfile; 1594let state = a2dpSrc.getPlayingState('XX:XX:XX:XX:XX:XX'); 1595``` 1596 1597 1598## HandsFreeAudioGatewayProfile 1599 1600使用HandsFreeAudioGatewayProfile方法之前需要创建该类的实例进行操作,通过getProfile()方法构造此实例。 1601 1602 1603### connect<sup>8+</sup><sup>(deprecated)</sup><a name="hfp-connect"></a> 1604 1605connect(device: string): boolean 1606 1607连接设备的HFP服务。 1608 1609> **说明:**<br/> 1610> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.HandsFreeAudioGatewayProfile.connect](js-apis-bluetoothManager.md#connect-1)替代。 1611 1612**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 1613 1614**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1615 1616**参数:** 1617 1618| 参数名 | 类型 | 必填 | 说明 | 1619| ------ | ------ | ---- | ------- | 1620| device | string | 是 | 远端设备地址。 | 1621 1622**返回值:** 1623 1624| 类型 | 说明 | 1625| ------- | ------------------- | 1626| boolean | 成功返回true,失败返回false。 | 1627 1628**示例:** 1629 1630```js 1631let hfpAg = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_HANDS_FREE_AUDIO_GATEWAY) as 1632 bluetooth.HandsFreeAudioGatewayProfile; 1633let ret = hfpAg.connect('XX:XX:XX:XX:XX:XX'); 1634``` 1635 1636 1637### disconnect<sup>8+</sup><sup>(deprecated)</sup><a name="hfp-disconnect"></a> 1638 1639disconnect(device: string): boolean 1640 1641断开连接设备的HFP服务。 1642 1643> **说明:**<br/> 1644> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.HandsFreeAudioGatewayProfile.disconnect](js-apis-bluetoothManager.md#disconnect-1)替代。 1645 1646**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 1647 1648**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1649 1650**参数:** 1651 1652| 参数名 | 类型 | 必填 | 说明 | 1653| ------ | ------ | ---- | ------- | 1654| device | string | 是 | 远端设备地址。 | 1655 1656**返回值:** 1657 1658| 类型 | 说明 | 1659| ------- | ------------------- | 1660| boolean | 成功返回true,失败返回false。 | 1661 1662**示例:** 1663 1664```js 1665let hfpAg = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_HANDS_FREE_AUDIO_GATEWAY) as 1666 bluetooth.HandsFreeAudioGatewayProfile; 1667let ret = hfpAg.disconnect('XX:XX:XX:XX:XX:XX'); 1668``` 1669 1670 1671### on('connectionStateChange')<sup>8+</sup><sup>(deprecated)</sup> 1672 1673on(type: "connectionStateChange", callback: Callback<[StateChangeParam](#StateChangeParam)>): void 1674 1675订阅HFP连接状态变化事件。 1676 1677> **说明:**<br/> 1678> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.HandsFreeAudioGatewayProfile.on('connectionStateChange')](js-apis-bluetoothManager.md#onconnectionstatechange-1)替代。 1679 1680**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1681 1682**参数:** 1683 1684| 参数名 | 类型 | 必填 | 说明 | 1685| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 1686| type | string | 是 | 填写"connectionStateChange"字符串,表示连接状态变化事件。 | 1687| callback | Callback<[StateChangeParam](#StateChangeParam)> | 是 | 表示回调函数的入参。 | 1688 1689**返回值:** 1690 1691无 1692 1693**示例:** 1694 1695```js 1696function onReceiveEvent(data) { 1697 console.info('hfp state = '+ JSON.stringify(data)); 1698} 1699let hfpAg = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_HANDS_FREE_AUDIO_GATEWAY) as 1700 bluetooth.HandsFreeAudioGatewayProfile; 1701hfpAg.on('connectionStateChange', onReceiveEvent); 1702``` 1703 1704 1705### off('connectionStateChange')<sup>8+</sup><sup>(deprecated)</sup> 1706 1707off(type: "connectionStateChange", callback?: Callback<[StateChangeParam](#StateChangeParam)>): void 1708 1709取消订阅HFP连接状态变化事件。 1710 1711> **说明:**<br/> 1712> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.HandsFreeAudioGatewayProfile.off('connectionStateChange')](js-apis-bluetoothManager.md#offconnectionstatechange-1)替代。 1713 1714**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1715 1716**参数:** 1717 1718| 参数名 | 类型 | 必填 | 说明 | 1719| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 1720| type | string | 是 | 填写"connectionStateChange"字符串,表示连接状态变化事件。 | 1721| callback | Callback<[StateChangeParam](#StateChangeParam)> | 否 | 表示回调函数的入参。 | 1722 1723**返回值:** 1724 1725无 1726 1727**示例:** 1728 1729```js 1730function onReceiveEvent(data) { 1731 console.info('hfp state = '+ JSON.stringify(data)); 1732} 1733let hfpAg = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_HANDS_FREE_AUDIO_GATEWAY) as 1734 bluetooth.HandsFreeAudioGatewayProfile; 1735hfpAg.on('connectionStateChange', onReceiveEvent); 1736hfpAg.off('connectionStateChange', onReceiveEvent); 1737``` 1738 1739 1740## GattServer 1741 1742server端类,使用server端方法之前需要创建该类的实例进行操作,通过createGattServer()方法构造此实例。 1743 1744 1745### startAdvertising<sup>(deprecated)</sup> 1746 1747startAdvertising(setting: AdvertiseSetting, advData: AdvertiseData, advResponse?: AdvertiseData): void 1748 1749开始发送BLE广播。 1750 1751> **说明:**<br/> 1752> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattServer.startAdvertising](js-apis-bluetoothManager.md#startadvertising)替代。 1753 1754**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 1755 1756**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1757 1758**参数:** 1759 1760| 参数名 | 类型 | 必填 | 说明 | 1761| ----------- | ------------------------------------- | ---- | -------------- | 1762| setting | [AdvertiseSetting](#advertisesetting) | 是 | BLE广播的相关参数。 | 1763| advData | [AdvertiseData](#advertisedata) | 是 | BLE广播包内容。 | 1764| advResponse | [AdvertiseData](#advertisedata) | 否 | BLE回复扫描请求回复响应。 | 1765 1766**返回值:** 1767 1768无 1769 1770**示例:** 1771 1772```js 1773let manufactureValueBuffer = new Uint8Array(4); 1774manufactureValueBuffer[0] = 1; 1775manufactureValueBuffer[1] = 2; 1776manufactureValueBuffer[2] = 3; 1777manufactureValueBuffer[3] = 4; 1778 1779let serviceValueBuffer = new Uint8Array(4); 1780serviceValueBuffer[0] = 4; 1781serviceValueBuffer[1] = 6; 1782serviceValueBuffer[2] = 7; 1783serviceValueBuffer[3] = 8; 1784console.info('manufactureValueBuffer = '+ JSON.stringify(manufactureValueBuffer)); 1785console.info('serviceValueBuffer = '+ JSON.stringify(serviceValueBuffer)); 1786let gattServer = bluetooth.BLE.createGattServer(); 1787gattServer.startAdvertising({ 1788 interval:150, 1789 txPower:60, 1790 connectable:true, 1791 },{ 1792 serviceUuids:["00001888-0000-1000-8000-00805f9b34fb"], 1793 manufactureData:[{ 1794 manufactureId:4567, 1795 manufactureValue:manufactureValueBuffer.buffer 1796 }], 1797 serviceData:[{ 1798 serviceUuid:"00001888-0000-1000-8000-00805f9b34fb", 1799 serviceValue:serviceValueBuffer.buffer 1800 }], 1801 },{ 1802 serviceUuids:["00001889-0000-1000-8000-00805f9b34fb"], 1803 manufactureData:[{ 1804 manufactureId:1789, 1805 manufactureValue:manufactureValueBuffer.buffer 1806 }], 1807 serviceData:[{ 1808 serviceUuid:"00001889-0000-1000-8000-00805f9b34fb", 1809 serviceValue:serviceValueBuffer.buffer 1810 }], 1811}); 1812``` 1813 1814 1815### stopAdvertising<sup>(deprecated)</sup> 1816 1817stopAdvertising(): void 1818 1819停止发送BLE广播。 1820 1821> **说明:**<br/> 1822> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattServer.stopAdvertising](js-apis-bluetoothManager.md#stopadvertising)替代。 1823 1824**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 1825 1826**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1827 1828**返回值:** 1829 1830无 1831 1832**示例:** 1833 1834```js 1835let server = bluetooth.BLE.createGattServer(); 1836server.stopAdvertising(); 1837``` 1838 1839 1840### addService<sup>(deprecated)</sup> 1841 1842addService(service: GattService): boolean 1843 1844server端添加服务。 1845 1846> **说明:**<br/> 1847> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattServer.addService](js-apis-bluetoothManager.md#addservice)替代。 1848 1849**需要权限**:ohos.permission.USE_BLUETOOTH 1850 1851**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1852 1853**参数:** 1854 1855| 参数名 | 类型 | 必填 | 说明 | 1856| ------- | --------------------------- | ---- | ------------------------ | 1857| service | [GattService](#gattservice) | 是 | 服务端的service数据。BLE广播的相关参数 | 1858 1859**返回值:** 1860 1861| 类型 | 说明 | 1862| ------- | -------------------------- | 1863| boolean | 添加服务操作,成功返回true,否则返回false。 | 1864 1865**示例:** 1866 1867```js 1868// 创建descriptors 1869let descriptors = []; 1870let arrayBuffer = new ArrayBuffer(8); 1871let descV = new Uint8Array(arrayBuffer); 1872descV[0] = 11; 1873let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', 1874 characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', 1875 descriptorUuid: '00002902-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer}; 1876descriptors[0] = descriptor; 1877 1878// 创建characteristics 1879let characteristics = []; 1880let arrayBufferC = new ArrayBuffer(8); 1881let cccV = new Uint8Array(arrayBufferC); 1882cccV[0] = 1; 1883let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', 1884 characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', characteristicValue: arrayBufferC, descriptors:descriptors}; 1885let characteristicN = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', 1886 characteristicUuid: '00001821-0000-1000-8000-00805F9B34FB', characteristicValue: arrayBufferC, descriptors:descriptors}; 1887characteristics[0] = characteristic; 1888 1889// 创建gattService 1890let gattService = {serviceUuid:'00001810-0000-1000-8000-00805F9B34FB', isPrimary: true, characteristics:characteristics, includeServices:[]}; 1891 1892let gattServer = bluetooth.BLE.createGattServer(); 1893let ret = gattServer.addService(gattService); 1894if (ret) { 1895 console.log("add service successfully"); 1896} else { 1897 console.log("add service failed"); 1898} 1899``` 1900 1901 1902### removeService<sup>(deprecated)</sup> 1903 1904removeService(serviceUuid: string): boolean 1905 1906删除已添加的服务。 1907 1908> **说明:**<br/> 1909> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattServer.removeService](js-apis-bluetoothManager.md#removeservice)替代。 1910 1911**需要权限**:ohos.permission.USE_BLUETOOTH 1912 1913**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1914 1915**参数:** 1916 1917| 参数名 | 类型 | 必填 | 说明 | 1918| ----------- | ------ | ---- | ---------------------------------------- | 1919| serviceUuid | string | 是 | service的UUID,例如“00001810-0000-1000-8000-00805F9B34FB”。 | 1920 1921**返回值:** 1922 1923| 类型 | 说明 | 1924| ------- | -------------------------- | 1925| boolean | 删除服务操作,成功返回true,否则返回false。 | 1926 1927**示例:** 1928 1929```js 1930let server = bluetooth.BLE.createGattServer(); 1931server.removeService('00001810-0000-1000-8000-00805F9B34FB'); 1932``` 1933 1934 1935### close<sup>(deprecated)</sup> 1936 1937close(): void 1938 1939关闭服务端功能,去注册server在协议栈的注册,调用该接口后[GattServer](#gattserver)实例将不能再使用。 1940 1941> **说明:**<br/> 1942> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattServer.close](js-apis-bluetoothManager.md#close)替代。 1943 1944**需要权限**:ohos.permission.USE_BLUETOOTH 1945 1946**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1947 1948**示例:** 1949 1950```js 1951let server = bluetooth.BLE.createGattServer(); 1952server.close(); 1953``` 1954 1955 1956### notifyCharacteristicChanged<sup>(deprecated)</sup> 1957 1958notifyCharacteristicChanged(deviceId: string, notifyCharacteristic: NotifyCharacteristic): boolean 1959 1960server端特征值发生变化时,主动通知已连接的client设备。 1961 1962> **说明:**<br/> 1963> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattServer.notifyCharacteristicChanged](js-apis-bluetoothManager.md#notifycharacteristicchanged)替代。 1964 1965**需要权限**:ohos.permission.USE_BLUETOOTH 1966 1967**系统能力**:SystemCapability.Communication.Bluetooth.Core。 1968 1969**参数:** 1970 1971| 参数名 | 类型 | 必填 | 说明 | 1972| -------------------- | ---------------------------------------- | ---- | --------------------------------------- | 1973| deviceId | string | 是 | 接收通知的client端设备地址,例如“XX:XX:XX:XX:XX:XX”。 | 1974| notifyCharacteristic | [NotifyCharacteristic](#notifycharacteristic) | 是 | 通知的特征值数据。 | 1975 1976**返回值:** 1977 1978| 类型 | 说明 | 1979| ------- | ------------------------ | 1980| boolean | 通知操作,成功返回true,否则返回false。 | 1981 1982**示例:** 1983 1984```js 1985// 创建descriptors 1986let descriptors = []; 1987let arrayBuffer = new ArrayBuffer(8); 1988let descV = new Uint8Array(arrayBuffer); 1989descV[0] = 11; 1990let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', 1991 characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', 1992 descriptorUuid: '00002902-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer}; 1993descriptors[0] = descriptor; 1994let arrayBufferC = new ArrayBuffer(8); 1995let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', 1996 characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', characteristicValue: arrayBufferC, descriptors:descriptors}; 1997let notifyCharacteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', 1998 characteristicUuid: '00001821-0000-1000-8000-00805F9B34FB', characteristicValue: characteristic.characteristicValue, confirm: false}; 1999let server = bluetooth.BLE.createGattServer(); 2000server.notifyCharacteristicChanged('XX:XX:XX:XX:XX:XX', notifyCharacteristic); 2001``` 2002 2003 2004### sendResponse<sup>(deprecated)</sup> 2005 2006sendResponse(serverResponse: ServerResponse): boolean 2007 2008server端回复client端的读写请求。 2009 2010> **说明:**<br/> 2011> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattServer.sendResponse](js-apis-bluetoothManager.md#sendresponse)替代。 2012 2013**需要权限**:ohos.permission.USE_BLUETOOTH 2014 2015**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2016 2017**参数:** 2018 2019| 参数名 | 类型 | 必填 | 说明 | 2020| -------------- | --------------------------------- | ---- | --------------- | 2021| serverResponse | [ServerResponse](#serverresponse) | 是 | server端回复的响应数据。 | 2022 2023**返回值:** 2024 2025| 类型 | 说明 | 2026| ------- | -------------------------- | 2027| boolean | 回复响应操作,成功返回true,否则返回false。 | 2028 2029**示例:** 2030 2031```js 2032/* send response */ 2033let arrayBufferCCC = new ArrayBuffer(8); 2034let cccValue = new Uint8Array(arrayBufferCCC); 2035cccValue[0] = 1123; 2036let serverResponse = { 2037 "deviceId": "XX:XX:XX:XX:XX:XX", 2038 "transId": 0, 2039 "status": 0, 2040 "offset": 0, 2041 "value": arrayBufferCCC, 2042}; 2043 2044let gattServer = bluetooth.BLE.createGattServer(); 2045let ret = gattServer.sendResponse(serverResponse); 2046if (ret) { 2047 console.log('bluetooth sendResponse successfully'); 2048} else { 2049 console.log('bluetooth sendResponse failed'); 2050} 2051``` 2052 2053 2054### on('characteristicRead')<sup>(deprecated)</sup> 2055 2056on(type: "characteristicRead", callback: Callback<CharacteristicReadReq>): void 2057 2058server端订阅特征值读请求事件。 2059 2060> **说明:**<br/> 2061> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattServer.on('characteristicRead')](js-apis-bluetoothManager.md#oncharacteristicread)替代。 2062 2063**需要权限**:ohos.permission.USE_BLUETOOTH 2064 2065**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2066 2067**参数:** 2068 2069| 参数名 | 类型 | 必填 | 说明 | 2070| -------- | ---------------------------------------- | ---- | ------------------------------------- | 2071| type | string | 是 | 填写"characteristicRead"字符串,表示特征值读请求事件。 | 2072| callback | Callback<[CharacteristicReadReq](#characteristicreadreq)> | 是 | 表示回调函数的入参,client端发送的读请求数据。 | 2073 2074**返回值:** 2075 2076无 2077 2078**示例:** 2079 2080```js 2081let arrayBufferCCC = new ArrayBuffer(8); 2082let cccValue = new Uint8Array(arrayBufferCCC); 2083cccValue[0] = 1123; 2084function ReadCharacteristicReq(CharacteristicReadReq) { 2085 let deviceId = CharacteristicReadReq.deviceId; 2086 let transId = CharacteristicReadReq.transId; 2087 let offset = CharacteristicReadReq.offset; 2088 let characteristicUuid = CharacteristicReadReq.characteristicUuid; 2089 2090 let serverResponse = {deviceId: deviceId, transId: transId, status: 0, offset: offset, value:arrayBufferCCC}; 2091 2092 let ret = gattServer.sendResponse(serverResponse); 2093 if (ret) { 2094 console.log('bluetooth sendResponse successfully'); 2095 } else { 2096 console.log('bluetooth sendResponse failed'); 2097 } 2098} 2099 2100let gattServer = bluetooth.BLE.createGattServer(); 2101gattServer.on("characteristicRead", ReadCharacteristicReq); 2102``` 2103 2104 2105### off('characteristicRead')<sup>(deprecated)</sup> 2106 2107off(type: "characteristicRead", callback?: Callback<CharacteristicReadReq>): void 2108 2109server端取消订阅特征值读请求事件。 2110 2111> **说明:**<br/> 2112> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattServer.off('characteristicRead')](js-apis-bluetoothManager.md#offcharacteristicread)替代。 2113 2114**需要权限**:ohos.permission.USE_BLUETOOTH 2115 2116**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2117 2118**参数:** 2119 2120| 参数名 | 类型 | 必填 | 说明 | 2121| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 2122| type | string | 是 | 填写"characteristicRead"字符串,表示特征值读请求事件。 | 2123| callback | Callback<[CharacteristicReadReq](#characteristicreadreq)> | 否 | 表示取消订阅特征值读请求事件上报。不填该参数则取消订阅该type对应的所有回调。 | 2124 2125**返回值:** 2126 2127无 2128 2129**示例:** 2130 2131```js 2132let gattServer = bluetooth.BLE.createGattServer(); 2133gattServer.off("characteristicRead"); 2134``` 2135 2136 2137### on('characteristicWrite')<sup>(deprecated)</sup> 2138 2139on(type: "characteristicWrite", callback: Callback<CharacteristicWriteReq>): void 2140 2141server端订阅特征值写请求事件。 2142 2143> **说明:**<br/> 2144> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattServer.on('characteristicWrite')](js-apis-bluetoothManager.md#oncharacteristicwrite)替代。 2145 2146**需要权限**:ohos.permission.USE_BLUETOOTH 2147 2148**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2149 2150**参数:** 2151 2152| 参数名 | 类型 | 必填 | 说明 | 2153| -------- | ---------------------------------------- | ---- | -------------------------------------- | 2154| type | string | 是 | 填写"characteristicWrite"字符串,表示特征值写请求事件。 | 2155| callback | Callback<[CharacteristicWriteReq](#characteristicwritereq)> | 是 | 表示回调函数的入参,client端发送的写请求数据。 | 2156 2157**返回值:** 2158 2159无 2160 2161**示例:** 2162 2163```js 2164let arrayBufferCCC = new ArrayBuffer(8); 2165let cccValue = new Uint8Array(arrayBufferCCC); 2166function WriteCharacteristicReq(CharacteristicWriteReq) { 2167 let deviceId = CharacteristicWriteReq.deviceId; 2168 let transId = CharacteristicWriteReq.transId; 2169 let offset = CharacteristicWriteReq.offset; 2170 let isPrep = CharacteristicWriteReq.isPrep; 2171 let needRsp = CharacteristicWriteReq.needRsp; 2172 let value = new Uint8Array(CharacteristicWriteReq.value); 2173 let characteristicUuid = CharacteristicWriteReq.characteristicUuid; 2174 2175 cccValue[0] = value[0]; 2176 let serverResponse = {deviceId: deviceId, transId: transId, status: 0, offset: offset, value:arrayBufferCCC}; 2177 2178 let ret = gattServer.sendResponse(serverResponse); 2179 if (ret) { 2180 console.log('bluetooth sendResponse successfully'); 2181 } else { 2182 console.log('bluetooth sendResponse failed'); 2183 } 2184} 2185 2186let gattServer = bluetooth.BLE.createGattServer(); 2187gattServer.on("characteristicWrite", WriteCharacteristicReq); 2188``` 2189 2190 2191### off('characteristicWrite')<sup>(deprecated)</sup> 2192 2193off(type: "characteristicWrite", callback?: Callback<CharacteristicWriteReq>): void 2194 2195server端取消订阅特征值写请求事件。 2196 2197> **说明:**<br/> 2198> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattServer.off('characteristicWrite')](js-apis-bluetoothManager.md#offcharacteristicwrite)替代。 2199 2200**需要权限**:ohos.permission.USE_BLUETOOTH 2201 2202**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2203 2204**参数:** 2205 2206| 参数名 | 类型 | 必填 | 说明 | 2207| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 2208| type | string | 是 | 填写"characteristicWrite"字符串,表示特征值写请求事件。 | 2209| callback | Callback<[CharacteristicWriteReq](#characteristicwritereq)> | 否 | 表示取消订阅特征值写请求事件上报。不填该参数则取消订阅该type对应的所有回调。 | 2210 2211**返回值:** 2212 2213无 2214 2215**示例:** 2216 2217```js 2218let gattServer = bluetooth.BLE.createGattServer(); 2219gattServer.off("characteristicWrite"); 2220``` 2221 2222 2223### on('descriptorRead')<sup>(deprecated)</sup> 2224 2225on(type: "descriptorRead", callback: Callback<DescriptorReadReq>): void 2226 2227server端订阅描述符读请求事件。 2228 2229> **说明:**<br/> 2230> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattServer.on('descriptorRead')](js-apis-bluetoothManager.md#ondescriptorread)替代。 2231 2232**需要权限**:ohos.permission.USE_BLUETOOTH 2233 2234**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2235 2236**参数:** 2237 2238| 参数名 | 类型 | 必填 | 说明 | 2239| -------- | ---------------------------------------- | ---- | --------------------------------- | 2240| type | string | 是 | 填写"descriptorRead"字符串,表示描述符读请求事件。 | 2241| callback | Callback<[DescriptorReadReq](#descriptorreadreq)> | 是 | 表示回调函数的入参,client端发送的读请求数据。 | 2242 2243**返回值:** 2244 2245无 2246 2247**示例:** 2248 2249```js 2250let arrayBufferDesc = new ArrayBuffer(8); 2251let descValue = new Uint8Array(arrayBufferDesc); 2252descValue[0] = 1101; 2253function ReadDescriptorReq(DescriptorReadReq) { 2254 let deviceId = DescriptorReadReq.deviceId; 2255 let transId = DescriptorReadReq.transId; 2256 let offset = DescriptorReadReq.offset; 2257 let descriptorUuid = DescriptorReadReq.descriptorUuid; 2258 2259 let serverResponse = {deviceId: deviceId, transId: transId, status: 0, offset: offset, value:arrayBufferDesc}; 2260 2261 let ret = gattServer.sendResponse(serverResponse); 2262 if (ret) { 2263 console.log('bluetooth sendResponse successfully'); 2264 } else { 2265 console.log('bluetooth sendResponse failed'); 2266 } 2267} 2268 2269let gattServer = bluetooth.BLE.createGattServer(); 2270gattServer.on("descriptorRead", ReadDescriptorReq); 2271``` 2272 2273 2274### off('descriptorRead')<sup>(deprecated)</sup> 2275 2276off(type: "descriptorRead", callback?: Callback<DescriptorReadReq>): void 2277 2278server端取消订阅描述符读请求事件。 2279 2280> **说明:**<br/> 2281> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattServer.off('descriptorRead')](js-apis-bluetoothManager.md#offdescriptorread)替代。 2282 2283**需要权限**:ohos.permission.USE_BLUETOOTH 2284 2285**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2286 2287**参数:** 2288 2289| 参数名 | 类型 | 必填 | 说明 | 2290| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 2291| type | string | 是 | 填写"descriptorRead"字符串,表示描述符读请求事件。 | 2292| callback | Callback<[DescriptorReadReq](#descriptorreadreq)> | 否 | 表示取消订阅描述符读请求事件上报。不填该参数则取消订阅该type对应的所有回调。 | 2293 2294**返回值:** 2295 2296无 2297 2298**示例:** 2299 2300```js 2301let gattServer = bluetooth.BLE.createGattServer(); 2302gattServer.off("descriptorRead"); 2303``` 2304 2305 2306### on('descriptorWrite')<sup>(deprecated)</sup> 2307 2308on(type: "descriptorWrite", callback: Callback<DescriptorWriteReq>): void 2309 2310server端订阅描述符写请求事件。 2311 2312> **说明:**<br/> 2313> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattServer.on('descriptorWrite')](js-apis-bluetoothManager.md#ondescriptorwrite)替代。 2314 2315**需要权限**:ohos.permission.USE_BLUETOOTH 2316 2317**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2318 2319**参数:** 2320 2321| 参数名 | 类型 | 必填 | 说明 | 2322| -------- | ---------------------------------------- | ---- | ---------------------------------- | 2323| type | string | 是 | 填写"descriptorWrite"字符串,表示描述符写请求事件。 | 2324| callback | Callback<[DescriptorWriteReq](#descriptorwritereq)> | 是 | 表示回调函数的入参,client端发送的写请求数据。 | 2325 2326**返回值:** 2327 2328无 2329 2330**示例:** 2331 2332```js 2333let arrayBufferDesc = new ArrayBuffer(8); 2334let descValue = new Uint8Array(arrayBufferDesc); 2335function WriteDescriptorReq(DescriptorWriteReq) { 2336 let deviceId = DescriptorWriteReq.deviceId; 2337 let transId = DescriptorWriteReq.transId; 2338 let offset = DescriptorWriteReq.offset; 2339 let isPrep = DescriptorWriteReq.isPrep; 2340 let needRsp = DescriptorWriteReq.needRsp; 2341 let value = new Uint8Array(DescriptorWriteReq.value); 2342 let descriptorUuid = DescriptorWriteReq.descriptorUuid; 2343 2344 descValue[0] = value[0]; 2345 let serverResponse = {deviceId: deviceId, transId: transId, status: 0, offset: offset, value:arrayBufferDesc}; 2346 2347 let ret = gattServer.sendResponse(serverResponse); 2348 if (ret) { 2349 console.log('bluetooth sendResponse successfully'); 2350 } else { 2351 console.log('bluetooth sendResponse failed'); 2352 } 2353} 2354 2355let gattServer = bluetooth.BLE.createGattServer(); 2356gattServer.on("descriptorRead", WriteDescriptorReq); 2357``` 2358 2359 2360### off('descriptorWrite')<sup>(deprecated)</sup> 2361 2362off(type: "descriptorWrite", callback?: Callback<DescriptorWriteReq>): void 2363 2364server端取消订阅描述符写请求事件。 2365 2366> **说明:**<br/> 2367> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattServer.off('descriptorWrite')](js-apis-bluetoothManager.md#offdescriptorwrite)替代。 2368 2369**需要权限**:ohos.permission.USE_BLUETOOTH 2370 2371**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2372 2373**参数:** 2374 2375| 参数名 | 类型 | 必填 | 说明 | 2376| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 2377| type | string | 是 | 填写"descriptorWrite"字符串,表示描述符写请求事件。 | 2378| callback | Callback<[DescriptorWriteReq](#descriptorwritereq)> | 否 | 表示取消订阅描述符写请求事件上报。不填该参数则取消订阅该type对应的所有回调。 | 2379 2380**返回值:** 2381 2382无 2383 2384**示例:** 2385 2386```js 2387let gattServer = bluetooth.BLE.createGattServer(); 2388gattServer.off("descriptorWrite"); 2389``` 2390 2391 2392### on('connectStateChange')<sup>(deprecated)</sup> 2393 2394on(type: "connectStateChange", callback: Callback<BLEConnectChangedState>): void 2395 2396server端订阅BLE连接状态变化事件。 2397 2398> **说明:**<br/> 2399> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattServer.on('connectStateChange')](js-apis-bluetoothManager.md#onconnectstatechange)替代。 2400 2401**需要权限**:ohos.permission.USE_BLUETOOTH 2402 2403**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2404 2405**参数:** 2406 2407| 参数名 | 类型 | 必填 | 说明 | 2408| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 2409| type | string | 是 | 填写"connectStateChange"字符串,表示BLE连接状态变化事件。 | 2410| callback | Callback<[BLEConnectChangedState](#bleconnectchangedstate)> | 是 | 表示回调函数的入参,连接状态。 | 2411 2412**返回值:** 2413 2414无 2415 2416**示例:** 2417 2418```js 2419function Connected(BLEConnectChangedState) { 2420 let deviceId = BLEConnectChangedState.deviceId; 2421 let status = BLEConnectChangedState.state; 2422} 2423 2424let gattServer = bluetooth.BLE.createGattServer(); 2425gattServer.on("connectStateChange", Connected); 2426``` 2427 2428 2429### off('connectStateChange')<sup>(deprecated)</sup> 2430 2431off(type: "connectStateChange", callback?: Callback<BLEConnectChangedState>): void 2432 2433server端取消订阅BLE连接状态变化事件。 2434 2435> **说明:**<br/> 2436> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattServer.off('connectStateChange')](js-apis-bluetoothManager.md#offconnectstatechange)替代。 2437 2438**需要权限**:ohos.permission.USE_BLUETOOTH 2439 2440**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2441 2442**参数:** 2443 2444| 参数名 | 类型 | 必填 | 说明 | 2445| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 2446| type | string | 是 | 填写"connectStateChange"字符串,表示BLE连接状态变化事件。 | 2447| callback | Callback<[BLEConnectChangedState](#bleconnectchangedstate)> | 否 | 表示取消订阅BLE连接状态变化事件。不填该参数则取消订阅该type对应的所有回调。 | 2448 2449**返回值:** 2450 2451无 2452 2453**示例:** 2454 2455```js 2456let gattServer = bluetooth.BLE.createGattServer(); 2457gattServer.off("connectStateChange"); 2458``` 2459 2460 2461## GattClientDevice 2462 2463client端类,使用client端方法之前需要创建该类的实例进行操作,通过createGattClientDevice(deviceId: string)方法构造此实例。 2464 2465 2466### connect<sup>(deprecated)</sup> 2467 2468connect(): boolean 2469 2470client端发起连接远端蓝牙低功耗设备。 2471 2472> **说明:**<br/> 2473> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.connect](js-apis-bluetoothManager.md#connect-3)替代。 2474 2475**需要权限**:ohos.permission.USE_BLUETOOTH 2476 2477**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2478 2479**返回值:** 2480 2481| 类型 | 说明 | 2482| ------- | ------------------------- | 2483| boolean | 连接操作成功返回true,操作失败返回false。 | 2484 2485**示例:** 2486 2487```js 2488let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 2489let ret = device.connect(); 2490``` 2491 2492 2493### disconnect<sup>(deprecated)</sup> 2494 2495disconnect(): boolean 2496 2497client端断开与远端蓝牙低功耗设备的连接。 2498 2499> **说明:**<br/> 2500> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.disconnect](js-apis-bluetoothManager.md#disconnect-4)替代。 2501 2502**需要权限**:ohos.permission.USE_BLUETOOTH 2503 2504**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2505 2506**返回值:** 2507 2508| 类型 | 说明 | 2509| ------- | ---------------------------- | 2510| boolean | 断开连接操作,成功返回true,操作失败返回false。 | 2511 2512**示例:** 2513 2514```js 2515let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 2516let ret = device.disconnect(); 2517``` 2518 2519 2520### close<sup>(deprecated)</sup> 2521 2522close(): boolean 2523 2524关闭客户端功能,注销client在协议栈的注册,调用该接口后[GattClientDevice](#gattclientdevice)实例将不能再使用。 2525 2526> **说明:**<br/> 2527> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.close](js-apis-bluetoothManager.md#close-1)替代。 2528 2529**需要权限**:ohos.permission.USE_BLUETOOTH 2530 2531**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2532 2533**返回值:** 2534 2535| 类型 | 说明 | 2536| ------- | -------------------------- | 2537| boolean | 关闭操作,成功返回true,操作失败返回false。 | 2538 2539**示例:** 2540 2541```js 2542let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 2543let ret = device.close(); 2544``` 2545 2546 2547 2548 2549### getServices<sup>(deprecated)</sup> 2550 2551getServices(callback: AsyncCallback<Array<GattService>>): void 2552 2553client端获取蓝牙低功耗设备的所有服务,即服务发现 。 2554 2555> **说明:**<br/> 2556> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.getServices](js-apis-bluetoothManager.md#getservices)替代。 2557 2558**需要权限**:ohos.permission.USE_BLUETOOTH 2559 2560**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2561 2562**参数:** 2563 2564| 参数名 | 类型 | 必填 | 说明 | 2565| -------- | ---------------------------------------- | ---- | ------------------------ | 2566| callback | AsyncCallback<Array<[GattService](#gattservice)>> | 是 | client进行服务发现,通过注册回调函数获取。 | 2567 2568**返回值:** 2569 2570无 2571 2572**示例:** 2573 2574```js 2575// callkback 模式 2576function getServices(code, gattServices) { 2577 if (code.code == 0) { 2578 let services = gattServices; 2579 console.log('bluetooth code is ' + code.code); 2580 console.log("bluetooth services size is ", services.length); 2581 2582 for (let i = 0; i < services.length; i++) { 2583 console.log('bluetooth serviceUuid is ' + services[i].serviceUuid); 2584 } 2585 } 2586} 2587 2588let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 2589device.connect(); 2590device.getServices(getServices); 2591``` 2592 2593 2594### getServices<sup>(deprecated)</sup> 2595 2596getServices(): Promise<Array<GattService>> 2597 2598client端获取蓝牙低功耗设备的所有服务,即服务发现。 2599 2600> **说明:**<br/> 2601> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.getServices](js-apis-bluetoothManager.md#getservices-1)替代。 2602 2603**需要权限**:ohos.permission.USE_BLUETOOTH 2604 2605**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2606 2607**返回值:** 2608 2609| 类型 | 说明 | 2610| ---------------------------------------- | --------------------------- | 2611| Promise<Array<[GattService](#gattservice)>> | client进行服务发现,通过promise形式获取。 | 2612 2613**示例:** 2614 2615```js 2616// Promise 模式 2617let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 2618device.connect(); 2619device.getServices().then(result => { 2620 console.info("getServices successfully:" + JSON.stringify(result)); 2621}); 2622``` 2623 2624 2625### readCharacteristicValue<sup>(deprecated)</sup> 2626 2627readCharacteristicValue(characteristic: BLECharacteristic, callback: AsyncCallback<BLECharacteristic>): void 2628 2629client端读取蓝牙低功耗设备特定服务的特征值。 2630 2631> **说明:**<br/> 2632> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.readCharacteristicValue](js-apis-bluetoothManager.md#readcharacteristicvalue)替代。 2633 2634**需要权限**:ohos.permission.USE_BLUETOOTH 2635 2636**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2637 2638**参数:** 2639 2640| 参数名 | 类型 | 必填 | 说明 | 2641| -------------- | ---------------------------------------- | ---- | ----------------------- | 2642| characteristic | [BLECharacteristic](#blecharacteristic) | 是 | 待读取的特征值。 | 2643| callback | AsyncCallback<[BLECharacteristic](#blecharacteristic)> | 是 | client读取特征值,通过注册回调函数获取。 | 2644 2645**返回值:** 2646 2647无 2648 2649**示例:** 2650 2651```js 2652function readCcc(code, BLECharacteristic) { 2653 if (code.code != 0) { 2654 return; 2655 } 2656 console.log('bluetooth characteristic uuid: ' + BLECharacteristic.characteristicUuid); 2657 let value = new Uint8Array(BLECharacteristic.characteristicValue); 2658 console.log('bluetooth characteristic value: ' + value[0] +','+ value[1]+','+ value[2]+','+ value[3]); 2659} 2660 2661let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 2662let descriptors = []; 2663let bufferDesc = new ArrayBuffer(8); 2664let descV = new Uint8Array(bufferDesc); 2665descV[0] = 11; 2666let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', 2667characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', 2668descriptorUuid: '00002903-0000-1000-8000-00805F9B34FB', descriptorValue: bufferDesc}; 2669descriptors[0] = descriptor; 2670 2671let bufferCCC = new ArrayBuffer(8); 2672let cccV = new Uint8Array(bufferCCC); 2673cccV[0] = 1; 2674let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', 2675characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', 2676characteristicValue: bufferCCC, descriptors:descriptors}; 2677 2678device.readCharacteristicValue(characteristic, readCcc); 2679``` 2680 2681 2682### readCharacteristicValue<sup>(deprecated)</sup> 2683 2684readCharacteristicValue(characteristic: BLECharacteristic): Promise<BLECharacteristic> 2685 2686client端读取蓝牙低功耗设备特定服务的特征值。 2687 2688> **说明:**<br/> 2689> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.readCharacteristicValue](js-apis-bluetoothManager.md#readcharacteristicvalue-1)替代。 2690 2691**需要权限**:ohos.permission.USE_BLUETOOTH 2692 2693**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2694 2695**参数:** 2696 2697| 参数名 | 类型 | 必填 | 说明 | 2698| -------------- | --------------------------------------- | ---- | -------- | 2699| characteristic | [BLECharacteristic](#blecharacteristic) | 是 | 待读取的特征值。 | 2700 2701**返回值:** 2702 2703| 类型 | 说明 | 2704| ---------------------------------------- | -------------------------- | 2705| Promise<[BLECharacteristic](#blecharacteristic)> | client读取特征值,通过promise形式获取。 | 2706 2707**示例:** 2708 2709```js 2710let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 2711let descriptors = []; 2712let bufferDesc = new ArrayBuffer(8); 2713let descV = new Uint8Array(bufferDesc); 2714descV[0] = 11; 2715let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', 2716characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', 2717descriptorUuid: '00002903-0000-1000-8000-00805F9B34FB', descriptorValue: bufferDesc}; 2718descriptors[0] = descriptor; 2719 2720let bufferCCC = new ArrayBuffer(8); 2721let cccV = new Uint8Array(bufferCCC); 2722cccV[0] = 1; 2723let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', 2724characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', 2725characteristicValue: bufferCCC, descriptors:descriptors}; 2726 2727device.readCharacteristicValue(characteristic); 2728``` 2729 2730 2731### readDescriptorValue<sup>(deprecated)</sup> 2732 2733readDescriptorValue(descriptor: BLEDescriptor, callback: AsyncCallback<BLEDescriptor>): void 2734 2735client端读取蓝牙低功耗设备特定的特征包含的描述符。 2736 2737> **说明:**<br/> 2738> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.readDescriptorValue](js-apis-bluetoothManager.md#readdescriptorvalue)替代。 2739 2740**需要权限**:ohos.permission.USE_BLUETOOTH 2741 2742**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2743 2744**参数:** 2745 2746| 参数名 | 类型 | 必填 | 说明 | 2747| ---------- | ---------------------------------------- | ---- | ----------------------- | 2748| descriptor | [BLEDescriptor](#bledescriptor) | 是 | 待读取的描述符。 | 2749| callback | AsyncCallback<[BLEDescriptor](#bledescriptor)> | 是 | client读取描述符,通过注册回调函数获取。 | 2750 2751**返回值:** 2752 2753无 2754 2755**示例:** 2756 2757```js 2758function readDesc(code, BLEDescriptor) { 2759 if (code.code != 0) { 2760 return; 2761 } 2762 console.log('bluetooth descriptor uuid: ' + BLEDescriptor.descriptorUuid); 2763 let value = new Uint8Array(BLEDescriptor.descriptorValue); 2764 console.log('bluetooth descriptor value: ' + value[0] +','+ value[1]+','+ value[2]+','+ value[3]); 2765} 2766 2767let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 2768let bufferDesc = new ArrayBuffer(8); 2769let descV = new Uint8Array(bufferDesc); 2770descV[0] = 11; 2771let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', 2772 characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', 2773 descriptorUuid: '00002903-0000-1000-8000-00805F9B34FB', descriptorValue: bufferDesc}; 2774device.readDescriptorValue(descriptor, readDesc); 2775``` 2776 2777 2778### readDescriptorValue<sup>(deprecated)</sup> 2779 2780readDescriptorValue(descriptor: BLEDescriptor): Promise<BLEDescriptor> 2781 2782client端读取蓝牙低功耗设备特定的特征包含的描述符。 2783 2784> **说明:**<br/> 2785> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.readDescriptorValue](js-apis-bluetoothManager.md#readdescriptorvalue-1)替代。 2786 2787**需要权限**:ohos.permission.USE_BLUETOOTH 2788 2789**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2790 2791**参数:** 2792 2793| 参数名 | 类型 | 必填 | 说明 | 2794| ---------- | ------------------------------- | ---- | -------- | 2795| descriptor | [BLEDescriptor](#bledescriptor) | 是 | 待读取的描述符。 | 2796 2797**返回值:** 2798 2799| 类型 | 说明 | 2800| ---------------------------------------- | -------------------------- | 2801| Promise<[BLEDescriptor](#bledescriptor)> | client读取描述符,通过promise形式获取。 | 2802 2803**示例:** 2804 2805```js 2806let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 2807let bufferDesc = new ArrayBuffer(8); 2808let descV = new Uint8Array(bufferDesc); 2809descV[0] = 11; 2810let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', 2811 characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', 2812 descriptorUuid: '00002903-0000-1000-8000-00805F9B34FB', descriptorValue: bufferDesc}; 2813device.readDescriptorValue(descriptor); 2814``` 2815 2816 2817### writeCharacteristicValue<sup>(deprecated)</sup> 2818 2819writeCharacteristicValue(characteristic: BLECharacteristic): boolean 2820 2821client端向低功耗蓝牙设备写入特定的特征值。 2822 2823> **说明:**<br/> 2824> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.writeCharacteristicValue](js-apis-bluetoothManager.md#writecharacteristicvalue)替代。 2825 2826**需要权限**:ohos.permission.USE_BLUETOOTH 2827 2828**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2829 2830**参数:** 2831 2832| 参数名 | 类型 | 必填 | 说明 | 2833| -------------- | --------------------------------------- | ---- | ------------------- | 2834| characteristic | [BLECharacteristic](#blecharacteristic) | 是 | 蓝牙设备特征对应的二进制值及其它参数。 | 2835 2836**返回值:** 2837 2838| 类型 | 说明 | 2839| ------- | --------------------------- | 2840| boolean | 写特征值操作成功返回true,操作失败返回false。 | 2841 2842**示例:** 2843 2844```js 2845let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 2846let descriptors = []; 2847let bufferDesc = new ArrayBuffer(8); 2848let descV = new Uint8Array(bufferDesc); 2849descV[0] = 11; 2850let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', 2851 characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', 2852 descriptorUuid: '00002903-0000-1000-8000-00805F9B34FB', descriptorValue: bufferDesc}; 2853descriptors[0] = descriptor; 2854 2855let bufferCCC = new ArrayBuffer(8); 2856let cccV = new Uint8Array(bufferCCC); 2857cccV[0] = 1; 2858let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', 2859 characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', 2860 characteristicValue: bufferCCC, descriptors:descriptors}; 2861let retWriteCcc = device.writeCharacteristicValue(characteristic); 2862if (retWriteCcc) { 2863 console.log('write characteristic successfully'); 2864} else { 2865 console.log('write characteristic failed'); 2866} 2867``` 2868 2869 2870### writeDescriptorValue<sup>(deprecated)</sup> 2871 2872writeDescriptorValue(descriptor: BLEDescriptor): boolean 2873 2874client端向低功耗蓝牙设备特定的描述符写入二进制数据。 2875 2876> **说明:**<br/> 2877> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.writeDescriptorValue](js-apis-bluetoothManager.md#writedescriptorvalue)替代。 2878 2879**需要权限**:ohos.permission.USE_BLUETOOTH 2880 2881**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2882 2883**参数:** 2884 2885| 参数名 | 类型 | 必填 | 说明 | 2886| ---------- | ------------------------------- | ---- | ------------------ | 2887| descriptor | [BLEDescriptor](#bledescriptor) | 是 | 蓝牙设备描述符的二进制值及其它参数。 | 2888 2889**返回值:** 2890 2891| 类型 | 说明 | 2892| ------- | --------------------------- | 2893| boolean | 写描述符操作成功返回true,操作失败返回false。 | 2894 2895**示例:** 2896 2897```js 2898let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 2899let bufferDesc = new ArrayBuffer(8); 2900let descV = new Uint8Array(bufferDesc); 2901descV[0] = 22; 2902let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', 2903 characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', 2904 descriptorUuid: '00002903-0000-1000-8000-00805F9B34FB', descriptorValue: bufferDesc}; 2905let retWriteDesc = device.writeDescriptorValue(descriptor); 2906if (retWriteDesc) { 2907 console.log('bluetooth write descriptor successfully'); 2908} else { 2909 console.log('bluetooth write descriptor failed'); 2910} 2911``` 2912 2913 2914### setBLEMtuSize<sup>(deprecated)</sup> 2915 2916setBLEMtuSize(mtu: number): boolean 2917 2918client协商远端蓝牙低功耗设备的最大传输单元(Maximum Transmission Unit, MTU),调用[connect](#connect)接口连接成功后才能使用。 2919 2920> **说明:**<br/> 2921> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.setBLEMtuSize](js-apis-bluetoothManager.md#setblemtusize)替代。 2922 2923**需要权限**:ohos.permission.USE_BLUETOOTH 2924 2925**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2926 2927**参数:** 2928 2929| 参数名 | 类型 | 必填 | 说明 | 2930| ---- | ------ | ---- | -------------- | 2931| mtu | number | 是 | 设置范围为22~512字节。 | 2932 2933**返回值:** 2934 2935| 类型 | 说明 | 2936| ------- | ---------------------------- | 2937| boolean | MTU协商操作成功返回true,操作失败返回false。 | 2938 2939**示例:** 2940 2941```js 2942let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 2943device.setBLEMtuSize(128); 2944``` 2945 2946 2947### setNotifyCharacteristicChanged<sup>(deprecated)</sup> 2948 2949setNotifyCharacteristicChanged(characteristic: BLECharacteristic, enable: boolean): boolean 2950 2951向服务端发送设置通知此特征值请求。 2952 2953> **说明:**<br/> 2954> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.setNotifyCharacteristicChanged](js-apis-bluetoothManager.md#setnotifycharacteristicchanged)替代。 2955 2956**需要权限**:ohos.permission.USE_BLUETOOTH 2957 2958**系统能力**:SystemCapability.Communication.Bluetooth.Core。 2959 2960**参数:** 2961 2962| 参数名 | 类型 | 必填 | 说明 | 2963| -------------- | --------------------------------------- | ---- | ----------------------------- | 2964| characteristic | [BLECharacteristic](#blecharacteristic) | 是 | 蓝牙低功耗特征。 | 2965| enable | boolean | 是 | 启用接收notify设置为true,否则设置为false。 | 2966 2967**返回值:** 2968 2969| 类型 | 说明 | 2970| ------- | ------------------------- | 2971| boolean | 设置操作成功返回true,操作失败返回false。 | 2972 2973**示例:** 2974 2975```js 2976// 创建descriptors 2977let descriptors = []; 2978let arrayBuffer = new ArrayBuffer(8); 2979let descV = new Uint8Array(arrayBuffer); 2980descV[0] = 11; 2981let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', 2982 characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', 2983 descriptorUuid: '00002902-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer}; 2984descriptors[0] = descriptor; 2985let arrayBufferC = new ArrayBuffer(8); 2986let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', 2987 characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', characteristicValue: arrayBufferC, descriptors:descriptors}; 2988let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 2989device.setNotifyCharacteristicChanged(characteristic, false); 2990``` 2991 2992 2993### on('BLECharacteristicChange')<sup>(deprecated)</sup> 2994 2995on(type: "BLECharacteristicChange", callback: Callback<BLECharacteristic>): void 2996 2997订阅蓝牙低功耗设备的特征值变化事件。需要先调用setNotifyCharacteristicChanged接口才能接收server端的通知。 2998 2999> **说明:**<br/> 3000> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.on('BLECharacteristicChange')](js-apis-bluetoothManager.md#onblecharacteristicchange)替代。 3001 3002**需要权限**:ohos.permission.USE_BLUETOOTH 3003 3004**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3005 3006**参数:** 3007 3008| 参数名 | 类型 | 必填 | 说明 | 3009| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 3010| type | string | 是 | 填写"BLECharacteristicChange"字符串,表示特征值变化事件。 | 3011| callback | Callback<[BLECharacteristic](#blecharacteristic)> | 是 | 表示蓝牙低功耗设备的特征值变化事件的回调函数。 | 3012 3013**返回值:** 3014 3015无 3016 3017**示例:** 3018 3019```js 3020function CharacteristicChange(CharacteristicChangeReq) { 3021 let serviceUuid = CharacteristicChangeReq.serviceUuid; 3022 let characteristicUuid = CharacteristicChangeReq.characteristicUuid; 3023 let value = new Uint8Array(CharacteristicChangeReq.characteristicValue); 3024} 3025let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 3026device.on('BLECharacteristicChange', CharacteristicChange); 3027``` 3028 3029 3030### off('BLECharacteristicChange')<sup>(deprecated)</sup> 3031 3032off(type: "BLECharacteristicChange", callback?: Callback<BLECharacteristic>): void 3033 3034取消订阅蓝牙低功耗设备的特征值变化事件。 3035 3036> **说明:**<br/> 3037> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.off('BLECharacteristicChange')](js-apis-bluetoothManager.md#offblecharacteristicchange)替代。 3038 3039**需要权限**:ohos.permission.USE_BLUETOOTH 3040 3041**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3042 3043**参数:** 3044 3045| 参数名 | 类型 | 必填 | 说明 | 3046| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 3047| type | string | 是 | 填写"BLECharacteristicChange"字符串,表示特征值变化事件。 | 3048| callback | Callback<[BLECharacteristic](#blecharacteristic)> | 否 | 表示取消订阅蓝牙低功耗设备的特征值变化事件。不填该参数则取消订阅该type对应的所有回调。 | 3049 3050**返回值:** 3051 3052无 3053 3054**示例:** 3055 3056```js 3057let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 3058device.off('BLECharacteristicChange'); 3059``` 3060 3061 3062### on('BLEConnectionStateChange')<sup>(deprecated)</sup> 3063 3064on(type: "BLEConnectionStateChange", callback: Callback<BLEConnectChangedState>): void 3065 3066client端订阅蓝牙低功耗设备的连接状态变化事件。 3067 3068> **说明:**<br/> 3069> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.on('BLEConnectionStateChange')](js-apis-bluetoothManager.md#onbleconnectionstatechange)替代。 3070 3071**需要权限**:ohos.permission.USE_BLUETOOTH 3072 3073**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3074 3075**参数:** 3076 3077| 参数名 | 类型 | 必填 | 说明 | 3078| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 3079| type | string | 是 | 填写"BLEConnectionStateChange"字符串,表示连接状态变化事件。 | 3080| callback | Callback<[BLEConnectChangedState](#bleconnectchangedstate)> | 是 | 表示连接状态,已连接或断开。 | 3081 3082**返回值:** 3083 3084无 3085 3086**示例:** 3087 3088```js 3089function ConnectStateChanged(state) { 3090 console.log('bluetooth connect state changed'); 3091 let connectState = state.state; 3092} 3093let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 3094device.on('BLEConnectionStateChange', ConnectStateChanged); 3095``` 3096 3097 3098### off('BLEConnectionStateChange')<sup>(deprecated)</sup> 3099 3100off(type: "BLEConnectionStateChange", callback?: Callback<BLEConnectChangedState>): void 3101 3102取消订阅蓝牙低功耗设备的连接状态变化事件。 3103 3104> **说明:**<br/> 3105> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.off('BLEConnectionStateChange')](js-apis-bluetoothManager.md#offbleconnectionstatechange)替代。 3106 3107**需要权限**:ohos.permission.USE_BLUETOOTH 3108 3109**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3110 3111**参数:** 3112 3113| 参数名 | 类型 | 必填 | 说明 | 3114| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 3115| type | string | 是 | 填写"BLEConnectionStateChange"字符串,表示连接状态变化事件。 | 3116| callback | Callback<[BLEConnectChangedState](#bleconnectchangedstate)> | 否 | 表示取消订阅蓝牙低功耗设备的连接状态变化事件。不填该参数则取消订阅该type对应的所有回调。 | 3117 3118**返回值:** 3119 3120无 3121 3122**示例:** 3123 3124```js 3125let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); 3126device.off('BLEConnectionStateChange'); 3127``` 3128 3129 3130### getDeviceName<sup>(deprecated)</sup> 3131 3132getDeviceName(callback: AsyncCallback<string>): void 3133 3134client获取远端蓝牙低功耗设备名。 3135 3136> **说明:**<br/> 3137> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.getDeviceName](js-apis-bluetoothManager.md#getdevicename)替代。 3138 3139**需要权限**:ohos.permission.USE_BLUETOOTH 3140 3141**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3142 3143**参数:** 3144 3145| 参数名 | 类型 | 必填 | 说明 | 3146| -------- | --------------------------- | ---- | ------------------------------- | 3147| callback | AsyncCallback<string> | 是 | client获取对端server设备名,通过注册回调函数获取。 | 3148 3149**返回值:** 3150 3151无 3152 3153**示例:** 3154 3155```js 3156// callback 3157let gattClient = bluetooth.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX"); 3158let deviceName = gattClient.getDeviceName((err, data)=> { 3159 console.info('device name err ' + JSON.stringify(err)); 3160 console.info('device name' + JSON.stringify(data)); 3161}) 3162``` 3163 3164 3165### getDeviceName<sup>(deprecated)</sup> 3166 3167getDeviceName(): Promise<string> 3168 3169client获取远端蓝牙低功耗设备名。 3170 3171> **说明:**<br/> 3172> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.getDeviceName](js-apis-bluetoothManager.md#getdevicename-1)替代。 3173 3174**需要权限**:ohos.permission.USE_BLUETOOTH 3175 3176**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3177 3178**返回值:** 3179 3180| 类型 | 说明 | 3181| --------------------- | ---------------------------------- | 3182| Promise<string> | client获取对端server设备名,通过promise形式获取。 | 3183 3184**示例:** 3185 3186```js 3187// promise 3188let gattClient = bluetooth.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX"); 3189let ret = device.connect(); 3190let deviceName = gattClient.getDeviceName().then((data) => { 3191 console.info('device name' + JSON.stringify(data)); 3192}) 3193``` 3194 3195 3196### getRssiValue<sup>(deprecated)</sup> 3197 3198getRssiValue(callback: AsyncCallback<number>): void 3199 3200client获取远端蓝牙低功耗设备的信号强度 (Received Signal Strength Indication, RSSI),调用[connect](#connect)接口连接成功后才能使用。 3201 3202> **说明:**<br/> 3203> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.getRssiValue](js-apis-bluetoothManager.md#getrssivalue)替代。 3204 3205**需要权限**:ohos.permission.USE_BLUETOOTH 3206 3207**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3208 3209**参数:** 3210 3211| 参数名 | 类型 | 必填 | 说明 | 3212| -------- | --------------------------- | ---- | ------------------------------ | 3213| callback | AsyncCallback<number> | 是 | 返回信号强度,单位 dBm,通过注册回调函数获取。 | 3214 3215**返回值:** 3216 3217无 3218 3219**示例:** 3220 3221```js 3222// callback 3223let gattClient = bluetooth.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX"); 3224let ret = device.connect(); 3225let rssi = gattClient.getRssiValue((err, data)=> { 3226 console.info('rssi err ' + JSON.stringify(err)); 3227 console.info('rssi value' + JSON.stringify(data)); 3228}) 3229``` 3230 3231 3232### getRssiValue<sup>(deprecated)</sup> 3233 3234getRssiValue(): Promise<number> 3235 3236client获取远端蓝牙低功耗设备的信号强度 (Received Signal Strength Indication, RSSI),调用[connect](#connect)接口连接成功后才能使用。 3237 3238> **说明:**<br/> 3239> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattClientDevice.getRssiValue](js-apis-bluetoothManager.md#getrssivalue-1)替代。 3240 3241**需要权限**:ohos.permission.USE_BLUETOOTH 3242 3243**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3244 3245**返回值:** 3246 3247| 类型 | 说明 | 3248| --------------------- | --------------------------------- | 3249| Promise<number> | 返回信号强度,单位 dBm,通过promise形式获取。 | 3250 3251**示例:** 3252 3253```js 3254// promise 3255let gattClient = bluetooth.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX"); 3256let rssi = gattClient.getRssiValue().then((data) => { 3257 console.info('rssi' + JSON.stringify(data)); 3258}) 3259``` 3260 3261## ScanMode<sup>8+</sup><sup>(deprecated)</sup><a name="ScanMode"></a> 3262 3263枚举,扫描模式。 3264 3265> **说明:**<br/> 3266> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.ScanMode](js-apis-bluetoothManager.md#scanmode)替代。 3267 3268**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3269 3270| 名称 | 值 | 说明 | 3271| ---------------------------------------- | ---- | --------------- | 3272| SCAN_MODE_NONE | 0 | 没有扫描模式。 | 3273| SCAN_MODE_CONNECTABLE | 1 | 可连接扫描模式。 | 3274| SCAN_MODE_GENERAL_DISCOVERABLE | 2 | general发现模式。 | 3275| SCAN_MODE_LIMITED_DISCOVERABLE | 3 | limited发现模式。 | 3276| SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE | 4 | 可连接general发现模式。 | 3277| SCAN_MODE_CONNECTABLE_LIMITED_DISCOVERABLE | 5 | 可连接limited发现模式。 | 3278 3279## BondState<sup>8+</sup><sup>(deprecated)</sup><a name="BondState"></a> 3280 3281枚举,配对状态。 3282 3283> **说明:**<br/> 3284> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.BondState](js-apis-bluetoothManager.md#bondstate)替代。 3285 3286**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3287 3288| 名称 | 值 | 说明 | 3289| ------------------ | ---- | ------ | 3290| BOND_STATE_INVALID | 0 | 无效的配对。 | 3291| BOND_STATE_BONDING | 1 | 正在配对。 | 3292| BOND_STATE_BONDED | 2 | 已配对。 | 3293 3294 3295## SppOption<sup>8+</sup><sup>(deprecated)</sup><a name="SppOption"></a> 3296 3297描述spp的配置参数。 3298 3299> **说明:**<br/> 3300> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.SppOption](js-apis-bluetoothManager.md#sppoption)替代。 3301 3302**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3303 3304| 名称 | 类型 | 可读 | 可写 | 说明 | 3305| ------ | ------------------- | ---- | ---- | ----------- | 3306| uuid | string | 是 | 是 | spp单据的uuid。 | 3307| secure | boolean | 是 | 是 | 是否是安全通道。 | 3308| type | [SppType](#spptype) | 是 | 是 | Spp链路类型。 | 3309 3310 3311## SppType<sup>8+</sup><sup>(deprecated)</sup><a name="SppType"></a> 3312 3313枚举,Spp链路类型。 3314 3315> **说明:**<br/> 3316> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.SppType](js-apis-bluetoothManager.md#spptype)替代。 3317 3318**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3319 3320| 名称 | 值 | 说明 | 3321| ---------- | ---- | ------------- | 3322| SPP_RFCOMM | 0 | 表示rfcomm链路类型。 | 3323 3324 3325## GattService<sup>(deprecated)</sup> 3326 3327描述service的接口参数定义。 3328 3329> **说明:**<br/> 3330> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.GattService](js-apis-bluetoothManager.md#gattservice)替代。 3331 3332**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3333 3334| 名称 | 类型 | 可读 | 可写 | 说明 | 3335| --------------- | ---------------------------------------- | ---- | ---- | ---------------------------------------- | 3336| serviceUuid | string | 是 | 是 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | 3337| isPrimary | boolean | 是 | 是 | 如果是主服务设置为true,否则设置为false。 | 3338| characteristics | Array<[BLECharacteristic](#blecharacteristic)> | 是 | 是 | 当前服务包含的特征列表。 | 3339| includeServices | Array<[GattService](#gattservice)> | 是 | 是 | 当前服务依赖的其它服务。 | 3340 3341 3342## BLECharacteristic<sup>(deprecated)</sup> 3343 3344描述characteristic的接口参数定义 。 3345 3346> **说明:**<br/> 3347> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.BLECharacteristic](js-apis-bluetoothManager.md#blecharacteristic)替代。 3348 3349**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3350 3351| 名称 | 类型 | 可读 | 可写 | 说明 | 3352| ------------------- | ---------------------------------------- | ---- | ---- | ---------------------------------------- | 3353| serviceUuid | string | 是 | 是 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | 3354| characteristicUuid | string | 是 | 是 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 | 3355| characteristicValue | ArrayBuffer | 是 | 是 | 特征对应的二进制值。 | 3356| descriptors | Array<[BLEDescriptor](#bledescriptor)> | 是 | 是 | 特定特征的描述符列表。 | 3357 3358 3359## BLEDescriptor<sup>(deprecated)</sup> 3360 3361描述descriptor的接口参数定义 。 3362 3363> **说明:**<br/> 3364> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.BLEDescriptor](js-apis-bluetoothManager.md#bledescriptor)替代。 3365 3366**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3367 3368| 名称 | 类型 | 可读 | 可写 | 说明 | 3369| ------------------ | ----------- | ---- | ---- | ---------------------------------------- | 3370| serviceUuid | string | 是 | 是 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | 3371| characteristicUuid | string | 是 | 是 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 | 3372| descriptorUuid | string | 是 | 是 | 描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。 | 3373| descriptorValue | ArrayBuffer | 是 | 是 | 描述符对应的二进制值。 | 3374 3375 3376## NotifyCharacteristic<sup>(deprecated)</sup> 3377 3378描述server端特征值变化时发送的特征通知参数定义。 3379 3380> **说明:**<br/> 3381> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.NotifyCharacteristic](js-apis-bluetoothManager.md#notifycharacteristic)替代。 3382 3383**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3384 3385| 名称 | 类型 | 可读 | 可写 | 说明 | 3386| ------------------- | ----------- | ---- | ---- | ---------------------------------------- | 3387| serviceUuid | string | 是 | 是 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | 3388| characteristicUuid | string | 是 | 是 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 | 3389| characteristicValue | ArrayBuffer | 是 | 是 | 特征对应的二进制值。 | 3390| confirm | boolean | 是 | 是 | 如果是notification则对端回复确认设置为true,如果是indication则对端不需要回复确认设置为false。 | 3391 3392 3393## CharacteristicReadReq<sup>(deprecated)</sup> 3394 3395描述server端订阅后收到的特征值读请求事件参数结构。 3396 3397> **说明:**<br/> 3398> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.CharacteristicReadRequest](js-apis-bluetoothManager.md#characteristicreadrequest)替代。 3399 3400**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3401 3402| 名称 | 类型 | 可读 | 可写 | 说明 | 3403| ------------------ | ------ | ---- | ---- | ---------------------------------------- | 3404| deviceId | string | 是 | 否 | 表示发送特征值读请求的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | 3405| transId | number | 是 | 否 | 表示读请求的传输ID,server端回复响应时需填写相同的传输ID。 | 3406| offset | number | 是 | 否 | 表示读特征值数据的起始位置。例如:k表示从第k个字节开始读,server端回复响应时需填写相同的offset。 | 3407| characteristicUuid | string | 是 | 否 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 | 3408| serviceUuid | string | 是 | 否 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | 3409 3410 3411## CharacteristicWriteReq<sup>(deprecated)</sup> 3412 3413描述server端订阅后收到的特征值写请求事件参数结构。 3414 3415> **说明:**<br/> 3416> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.CharacteristicWriteRequest](js-apis-bluetoothManager.md#characteristicwriterequest)替代。 3417 3418**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3419 3420| 名称 | 类型 | 可读 | 可写 | 说明 | 3421| ------------------ | ------ | ---- | ---- | ---------------------------------------- | 3422| deviceId | string | 是 | 否 | 表示发送特征值写请求的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | 3423| transId | number | 是 | 否 | 表示写请求的传输ID,server端回复响应时需填写相同的传输ID。 | 3424| offset | number | 是 | 否 | 表示写特征值数据的起始位置。例如:k表示从第k个字节开始写,server端回复响应时需填写相同的offset。 | 3425| descriptorUuid | string | 是 | 否 | 表示描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。 | 3426| characteristicUuid | string | 是 | 否 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 | 3427| serviceUuid | string | 是 | 否 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | 3428 3429 3430## DescriptorReadReq<sup>(deprecated)</sup> 3431 3432描述server端订阅后收到的描述符读请求事件参数结构。 3433 3434> **说明:**<br/> 3435> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.DescriptorReadRequest](js-apis-bluetoothManager.md#descriptorreadrequest)替代。 3436 3437**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3438 3439| 名称 | 类型 | 可读 | 可写 | 说明 | 3440| ------------------ | ------ | ---- | ---- | ---------------------------------------- | 3441| deviceId | string | 是 | 否 | 表示发送描述符读请求的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | 3442| transId | number | 是 | 否 | 表示读请求的传输ID,server端回复响应时需填写相同的传输ID。 | 3443| offset | number | 是 | 否 | 表示读描述符数据的起始位置。例如:k表示从第k个字节开始读,server端回复响应时需填写相同的offset。 | 3444| descriptorUuid | string | 是 | 否 | 表示描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。 | 3445| characteristicUuid | string | 是 | 否 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 | 3446| serviceUuid | string | 是 | 否 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | 3447 3448 3449## DescriptorWriteReq<sup>(deprecated)</sup> 3450 3451描述server端订阅后收到的描述符写请求事件参数结构。 3452 3453> **说明:**<br/> 3454> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.DescriptorWriteRequest](js-apis-bluetoothManager.md#descriptorwriterequest)替代。 3455 3456**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3457 3458| 名称 | 类型 | 可读 | 可写 | 说明 | 3459| ------------------ | ----------- | ---- | ---- | ---------------------------------------- | 3460| deviceId | string | 是 | 否 | 表示发送描述符写请求的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | 3461| transId | number | 是 | 否 | 表示写请求的传输ID,server端回复响应时需填写相同的传输ID。 | 3462| offset | number | 是 | 否 | 表示写描述符数据的起始位置。例如:k表示从第k个字节开始写,server端回复响应时需填写相同的offset。 | 3463| isPrep | boolean | 是 | 否 | 表示写请求是否立即执行。 | 3464| needRsp | boolean | 是 | 否 | 表示是否要给client端回复响应。 | 3465| value | ArrayBuffer | 是 | 否 | 表示写入的描述符二进制数据。 | 3466| descriptorUuid | string | 是 | 否 | 表示描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。 | 3467| characteristicUuid | string | 是 | 否 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 | 3468| serviceUuid | string | 是 | 否 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | 3469 3470 3471## ServerResponse<sup>(deprecated)</sup> 3472 3473描述server端回复client端读/写请求的响应参数结构。 3474 3475> **说明:**<br/> 3476> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.ServerResponse](js-apis-bluetoothManager.md#serverresponse)替代。 3477 3478**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3479 3480| 名称 | 类型 | 可读 | 可写 | 说明 | 3481| -------- | ----------- | ---- | ---- | -------------------------------------- | 3482| deviceId | string | 是 | 否 | 表示远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | 3483| transId | number | 是 | 否 | 表示请求的传输ID,与订阅的读/写请求事件携带的ID保持一致。 | 3484| status | number | 是 | 否 | 表示响应的状态,设置为0即可,表示正常。 | 3485| offset | number | 是 | 否 | 表示请求的读/写起始位置,与订阅的读/写请求事件携带的offset保持一致。 | 3486| value | ArrayBuffer | 是 | 否 | 表示回复响应的二进制数据。 | 3487 3488 3489## BLEConnectChangedState<sup>(deprecated)</sup> 3490 3491描述Gatt profile连接状态 。 3492 3493> **说明:**<br/> 3494> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.BLEConnectChangedState](js-apis-bluetoothManager.md#bleconnectchangedstate)替代。 3495 3496**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3497 3498| 名称 | 类型 | 可读 | 可写 | 说明 | 3499| -------- | ------------------------------------------------- | ---- | ---- | --------------------------------------------- | 3500| deviceId | string | 是 | 否 | 表示远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | 3501| state | [ProfileConnectionState](#profileconnectionstate) | 是 | 是 | 表示BLE连接状态的枚举。 | 3502 3503 3504## ProfileConnectionState<sup>(deprecated)</sup> 3505 3506枚举,蓝牙设备的profile连接状态。 3507 3508> **说明:**<br/> 3509> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.ProfileConnectionState](js-apis-bluetoothManager.md#profileconnectionstate)替代。 3510 3511**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3512 3513| 名称 | 值 | 说明 | 3514| ------------------- | ---- | -------------- | 3515| STATE_DISCONNECTED | 0 | 表示profile已断连。 | 3516| STATE_CONNECTING | 1 | 表示profile正在连接。 | 3517| STATE_CONNECTED | 2 | 表示profile已连接。 | 3518| STATE_DISCONNECTING | 3 | 表示profile正在断连。 | 3519 3520 3521## ScanFilter<sup>(deprecated)</sup> 3522 3523扫描过滤参数。 3524 3525> **说明:**<br/> 3526> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.ScanFilter](js-apis-bluetoothManager.md#scanfilter)替代。 3527 3528**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3529 3530| 名称 | 类型 | 可读 | 可写 | 说明 | 3531| ---------------------------------------- | ----------- | ---- | ---- | ------------------------------------------------------------ | 3532| deviceId | string | 是 | 是 | 表示过滤的BLE设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | 3533| name | string | 是 | 是 | 表示过滤的BLE设备名。 | 3534| serviceUuid | string | 是 | 是 | 表示过滤包含该UUID服务的设备,例如:00001888-0000-1000-8000-00805f9b34fb。 | 3535 3536 3537## ScanOptions<sup>(deprecated)</sup> 3538 3539扫描的配置参数。 3540 3541> **说明:**<br/> 3542> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.ScanOptions](js-apis-bluetoothManager.md#scanoptions)替代。 3543 3544**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3545 3546| 名称 | 类型 | 可读 | 可写 | 说明 | 3547| --------- | ----------------------- | ---- | ---- | -------------------------------------- | 3548| interval | number | 是 | 是 | 表示扫描结果上报延迟时间,默认值为0。 | 3549| dutyMode | [ScanDuty](#scanduty) | 是 | 是 | 表示扫描模式,默认值为SCAN_MODE_LOW_POWER。 | 3550| matchMode | [MatchMode](#matchmode) | 是 | 是 | 表示硬件的过滤匹配模式,默认值为MATCH_MODE_AGGRESSIVE。 | 3551 3552 3553## ScanDuty<sup>(deprecated)</sup> 3554 3555枚举,扫描模式。 3556 3557> **说明:**<br/> 3558> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.ScanDuty](js-apis-bluetoothManager.md#scanduty)替代。 3559 3560**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3561 3562| 名称 | 值 | 说明 | 3563| --------------------- | ---- | ------------ | 3564| SCAN_MODE_LOW_POWER | 0 | 表示低功耗模式,默认值。 | 3565| SCAN_MODE_BALANCED | 1 | 表示均衡模式。 | 3566| SCAN_MODE_LOW_LATENCY | 2 | 表示低延迟模式。 | 3567 3568 3569## MatchMode<sup>(deprecated)</sup> 3570 3571枚举,硬件过滤匹配模式。 3572 3573> **说明:**<br/> 3574> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.MatchMode](js-apis-bluetoothManager.md#matchmode)替代。 3575 3576**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3577 3578| 名称 | 值 | 说明 | 3579| --------------------- | ---- | ---------------------------------------- | 3580| MATCH_MODE_AGGRESSIVE | 1 | 表示硬件上报扫描结果门限较低,比如扫描到的功率较低或者一段时间扫描到的次数较少也触发上报,默认值。 | 3581| MATCH_MODE_STICKY | 2 | 表示硬件上报扫描结果门限较高,更高的功率门限以及扫描到多次才会上报。 | 3582 3583 3584## ScanResult<sup>(deprecated)</sup> 3585 3586扫描结果上报数据。 3587 3588> **说明:**<br/> 3589> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.ScanResult](js-apis-bluetoothManager.md#scanresult)替代。 3590 3591**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3592 3593| 名称 | 类型 | 可读 | 可写 | 说明 | 3594| -------- | ----------- | ---- | ---- | ---------------------------------- | 3595| deviceId | string | 是 | 否 | 表示扫描到的设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | 3596| rssi | number | 是 | 否 | 表示扫描到的设备的rssi值。 | 3597| data | ArrayBuffer | 是 | 否 | 表示扫描到的设备发送的广播包。 | 3598 3599 3600## BluetoothState<sup>(deprecated)</sup> 3601 3602枚举,蓝牙开关状态。 3603 3604> **说明:**<br/> 3605> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.BluetoothState](js-apis-bluetoothManager.md#bluetoothstate)替代。 3606 3607**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3608 3609| 名称 | 值 | 说明 | 3610| --------------------- | ---- | ------------------ | 3611| STATE_OFF | 0 | 表示蓝牙已关闭。 | 3612| STATE_TURNING_ON | 1 | 表示蓝牙正在打开。 | 3613| STATE_ON | 2 | 表示蓝牙已打开。 | 3614| STATE_TURNING_OFF | 3 | 表示蓝牙正在关闭。 | 3615| STATE_BLE_TURNING_ON | 4 | 表示蓝牙正在打开LE-only模式。 | 3616| STATE_BLE_ON | 5 | 表示蓝牙正处于LE-only模式。 | 3617| STATE_BLE_TURNING_OFF | 6 | 表示蓝牙正在关闭LE-only模式。 | 3618 3619 3620## AdvertiseSetting<sup>(deprecated)</sup> 3621 3622描述蓝牙低功耗设备发送广播的参数。 3623 3624> **说明:**<br/> 3625> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.AdvertiseSetting](js-apis-bluetoothManager.md#advertisesetting)替代。 3626 3627**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3628 3629| 名称 | 类型 | 可读 | 可写 | 说明 | 3630| ----------- | ------- | ---- | ---- | ---------------------------------------- | 3631| interval | number | 是 | 是 | 表示广播间隔,最小值设置32个slot表示20ms,最大值设置16384个slot,默认值设置为1600个slot表示1s。 | 3632| txPower | number | 是 | 是 | 表示发送功率,最小值设置-127,最大值设置1,默认值设置-7,单位dbm。 | 3633| connectable | boolean | 是 | 是 | 表示是否是可连接广播,默认值设置为true。 | 3634 3635 3636## AdvertiseData<sup>(deprecated)</sup> 3637 3638描述BLE广播数据包的内容。 3639 3640> **说明:**<br/> 3641> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.AdvertiseData](js-apis-bluetoothManager.md#advertisedata)替代。 3642 3643**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3644 3645| 名称 | 类型 | 可读 | 可写 | 说明 | 3646| --------------- | ---------------------------------------- | ---- | ---- | --------------------------- | 3647| serviceUuids | Array<string> | 是 | 是 | 表示要广播的服务 UUID 列表。 | 3648| manufactureData | Array<[ManufactureData](#manufacturedata)> | 是 | 是 | 表示要广播的广播的制造商信息列表。 | 3649| serviceData | Array<[ServiceData](#servicedata)> | 是 | 是 | 表示要广播的服务数据列表。 | 3650 3651 3652## ManufactureData<sup>(deprecated)</sup> 3653 3654描述BLE广播数据包的内容。 3655 3656> **说明:**<br/> 3657> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.ManufactureData](js-apis-bluetoothManager.md#manufacturedata)替代。 3658 3659**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3660 3661| 名称 | 类型 | 可读 | 可写 | 说明 | 3662| ---------------- | ------------------- | ---- | ---- | ------------------ | 3663| manufactureId | number | 是 | 是 | 表示制造商的ID,由蓝牙SIG分配。 | 3664| manufactureValue | ArrayBuffer | 是 | 是 | 表示制造商发送的制造商数据。 | 3665 3666 3667## ServiceData<sup>(deprecated)</sup> 3668 3669描述广播包中服务数据内容。 3670 3671> **说明:**<br/> 3672> 从API version 7开始支持,从API version 9开始废弃。建议使用[bluetoothManager.ServiceData](js-apis-bluetoothManager.md#servicedata)替代。 3673 3674**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3675 3676| 名称 | 类型 | 可读 | 可写 | 说明 | 3677| ------------ | ----------- | ---- | ---- | ---------- | 3678| serviceUuid | string | 是 | 是 | 表示服务的UUID。 | 3679| serviceValue | ArrayBuffer | 是 | 是 | 表示服务数据。 | 3680 3681 3682## PinRequiredParam<sup>8+</sup><sup>(deprecated)</sup><a name="PinRequiredParam"></a> 3683 3684描述配对请求参数。 3685 3686> **说明:**<br/> 3687> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.PinRequiredParam](js-apis-bluetoothManager.md#pinrequiredparam)替代。 3688 3689**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3690 3691| 名称 | 类型 | 可读 | 可写 | 说明 | 3692| -------- | ------ | ---- | ---- | ----------- | 3693| deviceId | string | 是 | 否 | 表示要配对的设备ID。 | 3694| pinCode | string | 是 | 否 | 表示要配对的密钥。 | 3695 3696 3697## BondStateParam<sup>8+</sup><sup>(deprecated)</sup><a name="BondStateParam"></a> 3698 3699描述配对状态参数。 3700 3701> **说明:**<br/> 3702> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.BondStateParam](js-apis-bluetoothManager.md#bondstateparam)替代。 3703 3704**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3705 3706| 名称 | 类型 | 可读 | 可写 | 说明 | 3707| -------- | ------ | ---- | ---- | ----------- | 3708| deviceId | string | 是 | 否 | 表示要配对的设备ID。 | 3709| state | BondState | 是 | 否 | 表示配对设备的状态。 | 3710 3711 3712## StateChangeParam<sup>8+</sup><sup>(deprecated)</sup><a name="StateChangeParam"></a> 3713 3714描述profile状态改变参数。 3715 3716> **说明:**<br/> 3717> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.StateChangeParam](js-apis-bluetoothManager.md#statechangeparam)替代。 3718 3719**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3720 3721| 名称 | 类型 | 可读 | 可写 | 说明 | 3722| -------- | ------------------------------------------------- | ---- | ---- | ------------------------------- | 3723| deviceId | string | 是 | 否 | 表示蓝牙设备地址。 | 3724| state | [ProfileConnectionState](#profileconnectionstate) | 是 | 否 | 表示蓝牙设备的profile连接状态。 | 3725 3726 3727## DeviceClass<sup>8+</sup><sup>(deprecated)</sup><a name="DeviceClass"></a> 3728 3729描述蓝牙设备的类别。 3730 3731> **说明:**<br/> 3732> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.DeviceClass](js-apis-bluetoothManager.md#deviceclass)替代。 3733 3734**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3735 3736| 名称 | 类型 | 可读 | 可写 | 说明 | 3737| --------------- | ----------------------------------- | ---- | ---- | ---------------- | 3738| majorClass | [MajorClass](#majorclass) | 是 | 否 | 表示蓝牙设备主要类别的枚举。 | 3739| majorMinorClass | [MajorMinorClass](#majorminorclass) | 是 | 否 | 表示主要次要蓝牙设备类别的枚举。 | 3740| classOfDevice | number | 是 | 否 | 表示设备类别。 | 3741 3742 3743 3744## MajorClass<sup>8+</sup><sup>(deprecated)</sup><a name="MajorClass"></a> 3745 3746枚举,蓝牙设备主要类别。 3747 3748> **说明:**<br/> 3749> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.MajorClass](js-apis-bluetoothManager.md#majorclass)替代。 3750 3751**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3752 3753| 名称 | 值 | 说明 | 3754| ------------------- | ------ | ---------- | 3755| MAJOR_MISC | 0x0000 | 表示杂项设备。 | 3756| MAJOR_COMPUTER | 0x0100 | 表示计算机设备。 | 3757| MAJOR_PHONE | 0x0200 | 表示手机设备。 | 3758| MAJOR_NETWORKING | 0x0300 | 表示网络设备。 | 3759| MAJOR_AUDIO_VIDEO | 0x0400 | 表示音频和视频设备。 | 3760| MAJOR_PERIPHERAL | 0x0500 | 表示外围设备。 | 3761| MAJOR_IMAGING | 0x0600 | 表示成像设备。 | 3762| MAJOR_WEARABLE | 0x0700 | 表示可穿戴设备。 | 3763| MAJOR_TOY | 0x0800 | 表示玩具设备。 | 3764| MAJOR_HEALTH | 0x0900 | 表示健康设备。 | 3765| MAJOR_UNCATEGORIZED | 0x1F00 | 表示未分类设备。 | 3766 3767 3768## MajorMinorClass<sup>8+</sup><sup>(deprecated)</sup><a name="MajorMinorClass"></a> 3769 3770枚举,主要次要蓝牙设备类别。 3771 3772> **说明:**<br/> 3773> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.MajorMinorClass](js-apis-bluetoothManager.md#majorminorclass)替代。 3774 3775**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3776 3777| 名称 | 值 | 说明 | 3778| ---------------------------------------- | ------ | --------------- | 3779| COMPUTER_UNCATEGORIZED | 0x0100 | 表示未分类计算机设备。 | 3780| COMPUTER_DESKTOP | 0x0104 | 表示台式计算机设备。 | 3781| COMPUTER_SERVER | 0x0108 | 表示服务器设备。 | 3782| COMPUTER_LAPTOP | 0x010C | 表示便携式计算机设备。 | 3783| COMPUTER_HANDHELD_PC_PDA | 0x0110 | 表示手持式计算机设备。 | 3784| COMPUTER_PALM_SIZE_PC_PDA | 0x0114 | 表示掌上电脑设备。 | 3785| COMPUTER_WEARABLE | 0x0118 | 表示可穿戴计算机设备。 | 3786| COMPUTER_TABLET | 0x011C | 表示平板电脑设备。 | 3787| PHONE_UNCATEGORIZED | 0x0200 | 表示未分类手机设备。 | 3788| PHONE_CELLULAR | 0x0204 | 表示便携式手机设备。 | 3789| PHONE_CORDLESS | 0x0208 | 表示无线电话设备。 | 3790| PHONE_SMART | 0x020C | 表示智能手机设备。 | 3791| PHONE_MODEM_OR_GATEWAY | 0x0210 | 表示调制解调器或网关手机设备。 | 3792| PHONE_ISDN | 0x0214 | 表示ISDN手机设备。 | 3793| NETWORK_FULLY_AVAILABLE | 0x0300 | 表示网络完全可用设备。 | 3794| NETWORK_1_TO_17_UTILIZED | 0x0320 | 表示使用网络1到17设备。 | 3795| NETWORK_17_TO_33_UTILIZED | 0x0340 | 表示使用网络17到33设备。 | 3796| NETWORK_33_TO_50_UTILIZED | 0x0360 | 表示使用网络33到50设备。 | 3797| NETWORK_60_TO_67_UTILIZED | 0x0380 | 表示使用网络60到67设备。 | 3798| NETWORK_67_TO_83_UTILIZED | 0x03A0 | 表示使用网络67到83设备。 | 3799| NETWORK_83_TO_99_UTILIZED | 0x03C0 | 表示使用网络83到99设备。 | 3800| NETWORK_NO_SERVICE | 0x03E0 | 表示网络无服务设备。 | 3801| AUDIO_VIDEO_UNCATEGORIZED | 0x0400 | 表示未分类音频视频设备。 | 3802| AUDIO_VIDEO_WEARABLE_HEADSET | 0x0404 | 表示可穿戴式音频视频设备。 | 3803| AUDIO_VIDEO_HANDSFREE | 0x0408 | 表示免提音频视频设备。 | 3804| AUDIO_VIDEO_MICROPHONE | 0x0410 | 表示麦克风音频视频设备。 | 3805| AUDIO_VIDEO_LOUDSPEAKER | 0x0414 | 表示扬声器音频视频设备。 | 3806| AUDIO_VIDEO_HEADPHONES | 0x0418 | 表示头戴式音频视频设备。 | 3807| AUDIO_VIDEO_PORTABLE_AUDIO | 0x041C | 表示便携式音频视频设备。 | 3808| AUDIO_VIDEO_CAR_AUDIO | 0x0420 | 表示汽车音频视频设备。 | 3809| AUDIO_VIDEO_SET_TOP_BOX | 0x0424 | 表示机顶盒音频视频设备。 | 3810| AUDIO_VIDEO_HIFI_AUDIO | 0x0428 | 表示高保真音响设备。 | 3811| AUDIO_VIDEO_VCR | 0x042C | 表示录像机音频视频设备。 | 3812| AUDIO_VIDEO_VIDEO_CAMERA | 0x0430 | 表示照相机音频视频设备。 | 3813| AUDIO_VIDEO_CAMCORDER | 0x0434 | 表示摄像机音频视频设备。 | 3814| AUDIO_VIDEO_VIDEO_MONITOR | 0x0438 | 表示监视器音频视频设备。 | 3815| AUDIO_VIDEO_VIDEO_DISPLAY_AND_LOUDSPEAKER | 0x043C | 表示视频显示器和扬声器设备。 | 3816| AUDIO_VIDEO_VIDEO_CONFERENCING | 0x0440 | 表示音频视频会议设备。 | 3817| AUDIO_VIDEO_VIDEO_GAMING_TOY | 0x0448 | 表示游戏玩具音频视频设备。 | 3818| PERIPHERAL_NON_KEYBOARD_NON_POINTING | 0x0500 | 表示非键盘非指向外围设备。 | 3819| PERIPHERAL_KEYBOARD | 0x0540 | 表示外设键盘设备。 | 3820| PERIPHERAL_POINTING_DEVICE | 0x0580 | 表示定点装置外围设备。 | 3821| PERIPHERAL_KEYBOARD_POINTING | 0x05C0 | 表示键盘指向外围设备。 | 3822| PERIPHERAL_UNCATEGORIZED | 0x0500 | 表示未分类外围设备。 | 3823| PERIPHERAL_JOYSTICK | 0x0504 | 表示周边操纵杆设备。 | 3824| PERIPHERAL_GAMEPAD | 0x0508 | 表示周边游戏板设备。 | 3825| PERIPHERAL_REMOTE_CONTROL | 0x05C0 | 表示远程控制外围设备。 | 3826| PERIPHERAL_SENSING_DEVICE | 0x0510 | 表示外围传感设备设备。 | 3827| PERIPHERAL_DIGITIZER_TABLET | 0x0514 | 表示外围数字化仪平板电脑设备。 | 3828| PERIPHERAL_CARD_READER | 0x0518 | 表示外围读卡器设备。 | 3829| PERIPHERAL_DIGITAL_PEN | 0x051C | 表示外设数码笔设备。 | 3830| PERIPHERAL_SCANNER_RFID | 0x0520 | 表示射频识别扫描仪外围设备。 | 3831| PERIPHERAL_GESTURAL_INPUT | 0x0522 | 表示手势输入外围设备。 | 3832| IMAGING_UNCATEGORIZED | 0x0600 | 表示未分类的图像设备。 | 3833| IMAGING_DISPLAY | 0x0610 | 表示图像显示设备。 | 3834| IMAGING_CAMERA | 0x0620 | 表示成像照相机设备。 | 3835| IMAGING_SCANNER | 0x0640 | 表示成像扫描仪设备。 | 3836| IMAGING_PRINTER | 0x0680 | 表示成像打印机设备。 | 3837| WEARABLE_UNCATEGORIZED | 0x0700 | 表示未分类的可穿戴设备。 | 3838| WEARABLE_WRIST_WATCH | 0x0704 | 表示可穿戴腕表设备。 | 3839| WEARABLE_PAGER | 0x0708 | 表示可穿戴寻呼机设备。 | 3840| WEARABLE_JACKET | 0x070C | 表示夹克可穿戴设备。 | 3841| WEARABLE_HELMET | 0x0710 | 表示可穿戴头盔设备。 | 3842| WEARABLE_GLASSES | 0x0714 | 表示可穿戴眼镜设备。 | 3843| TOY_UNCATEGORIZED | 0x0800 | 表示未分类的玩具设备。 | 3844| TOY_ROBOT | 0x0804 | 表示玩具机器人设备。 | 3845| TOY_VEHICLE | 0x0808 | 表示玩具车设备。 | 3846| TOY_DOLL_ACTION_FIGURE | 0x080C | 表示人形娃娃玩具设备。 | 3847| TOY_CONTROLLER | 0x0810 | 表示玩具控制器设备。 | 3848| TOY_GAME | 0x0814 | 表示玩具游戏设备。 | 3849| HEALTH_UNCATEGORIZED | 0x0900 | 表示未分类健康设备。 | 3850| HEALTH_BLOOD_PRESSURE | 0x0904 | 表示血压健康设备。 | 3851| HEALTH_THERMOMETER | 0x0908 | 表示温度计健康设备。 | 3852| HEALTH_WEIGHING | 0x090C | 表示体重健康设备。 | 3853| HEALTH_GLUCOSE | 0x0910 | 表示葡萄糖健康设备。 | 3854| HEALTH_PULSE_OXIMETER | 0x0914 | 表示脉搏血氧仪健康设备。 | 3855| HEALTH_PULSE_RATE | 0x0918 | 表示脉搏率健康设备。 | 3856| HEALTH_DATA_DISPLAY | 0x091C | 表示数据显示健康设备。 | 3857| HEALTH_STEP_COUNTER | 0x0920 | 表示阶梯计数器健康设备。 | 3858| HEALTH_BODY_COMPOSITION_ANALYZER | 0x0924 | 表示身体成分分析仪健康设备。 | 3859| HEALTH_PEAK_FLOW_MOITOR | 0x0928 | 表示湿度计健康设备。 | 3860| HEALTH_MEDICATION_MONITOR | 0x092C | 表示药物监视仪健康设备。 | 3861| HEALTH_KNEE_PROSTHESIS | 0x0930 | 表示膝盖假肢健康设备。 | 3862| HEALTH_ANKLE_PROSTHESIS | 0x0934 | 表示脚踝假肢健康设备。 | 3863| HEALTH_GENERIC_HEALTH_MANAGER | 0x0938 | 表示通用健康管理设备。 | 3864| HEALTH_PERSONAL_MOBILITY_DEVICE | 0x093C | 表示个人移动健康设备。 | 3865 3866 3867## PlayingState<sup>8+</sup><sup>(deprecated)</sup><a name="PlayingState"></a> 3868 3869枚举,蓝牙A2DP 播放状态。 3870 3871> **说明:**<br/> 3872> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.PlayingState](js-apis-bluetoothManager.md#playingstate)替代。 3873 3874**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3875 3876| 名称 | 值 | 说明 | 3877| ----------------- | ------ | ------- | 3878| STATE_NOT_PLAYING | 0x0000 | 表示未播放。 | 3879| STATE_PLAYING | 0x0001 | 表示正在播放。 | 3880 3881 3882## ProfileId<sup>8+</sup><sup>(deprecated)</sup><a name="ProfileId"></a> 3883 3884蓝牙profile枚举,API9新增PROFILE_HID_HOST,PROFILE_PAN_NETWORK。 3885 3886> **说明:**<br/> 3887> 从API version 8开始支持,从API version 9开始废弃。建议使用[bluetoothManager.ProfileId](js-apis-bluetoothManager.md#profileid)替代。 3888 3889**系统能力**:SystemCapability.Communication.Bluetooth.Core。 3890 3891| 名称 | 值 | 说明 | 3892| -------------------------------- | ------ | --------------- | 3893| PROFILE_A2DP_SOURCE | 1 | 表示A2DP profile。 | 3894| PROFILE_HANDS_FREE_AUDIO_GATEWAY | 4 | 表示HFP profile。 | 3895