diff --git a/zh-cn/application-dev/reference/apis/js-apis-bluetooth.md b/zh-cn/application-dev/reference/apis/js-apis-bluetooth.md index d2881854c8714b1daaa7b23a01e83744909fc750..1c8b02dde9ca35f07e7693d51a162ebc3de0b063 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-bluetooth.md +++ b/zh-cn/application-dev/reference/apis/js-apis-bluetooth.md @@ -3,8 +3,8 @@ 蓝牙模块提供了基础的传统蓝牙能力以及BLE的扫描、广播等功能。 > **说明:** -> > 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> 从API Version 9开始,该接口不再维护,推荐使用新接口[bluetoothManager](js-apis-bluetoothManager.md)。 @@ -15,12 +15,16 @@ import bluetooth from '@ohos.bluetooth'; ``` -## bluetooth.enableBluetooth8+ +## bluetooth.enableBluetooth8+(deprecated) enableBluetooth(): boolean 开启蓝牙。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.enableBluetooth](js-apis-bluetoothManager.md#bluetoothmanagerenablebluetooth)替代。 + **需要权限**:ohos.permission.DISCOVER_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -38,12 +42,16 @@ let enable = bluetooth.enableBluetooth(); ``` -## bluetooth.disableBluetooth8+ +## bluetooth.disableBluetooth8+(deprecated) disableBluetooth(): boolean 关闭蓝牙。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.disableBluetooth](js-apis-bluetoothManager.md#bluetoothmanagerdisablebluetooth)替代。 + **需要权限**:ohos.permission.DISCOVER_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -61,12 +69,16 @@ let disable = bluetooth.disableBluetooth(); ``` -## bluetooth.getLocalName8+ +## bluetooth.getLocalName8+(deprecated) getLocalName(): string 获取蓝牙本地设备名称。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.getLocalName](js-apis-bluetoothManager.md#bluetoothmanagergetlocalname)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -84,12 +96,16 @@ let localName = bluetooth.getLocalName(); ``` -## bluetooth.getState +## bluetooth.getState(deprecated) getState(): BluetoothState 获取蓝牙开关状态。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.getState](js-apis-bluetoothManager.md#bluetoothmanagergetstate)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -107,12 +123,16 @@ let state = bluetooth.getState(); ``` -## bluetooth.getBtConnectionState +## bluetooth.getBtConnectionState(deprecated) getBtConnectionState(): ProfileConnectionState 获取蓝牙设备的Profile连接状态。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.getBtConnectionState](js-apis-bluetoothManager.md#bluetoothmanagergetbtconnectionstate)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -130,12 +150,16 @@ let connectionState = bluetooth.getBtConnectionState(); ``` -## bluetooth.setLocalName8+ +## bluetooth.setLocalName8+(deprecated) setLocalName(name: string): boolean 设置蓝牙本地设备名称。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.setLocalName](js-apis-bluetoothManager.md#bluetoothmanagersetlocalname)替代。 + **需要权限**:ohos.permission.DISCOVER_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -159,12 +183,16 @@ let ret = bluetooth.setLocalName('device_name'); ``` -## bluetooth.pairDevice +## bluetooth.pairDevice(deprecated) pairDevice(deviceId: string): boolean 发起蓝牙配对。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.pairDevice](js-apis-bluetoothManager.md#bluetoothmanagerpairdevice)替代。 + **需要权限**:ohos.permission.DISCOVER_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -189,12 +217,16 @@ let result = bluetooth.pairDevice("XX:XX:XX:XX:XX:XX"); ``` -## bluetooth.getProfileConnState8+ +## bluetooth.getProfileConnState8+(deprecated) getProfileConnState(profileId: ProfileId): ProfileConnectionState 获取profile的连接状态。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.getProfileConnectionState](js-apis-bluetoothManager.md#bluetoothmanagergetprofileconnectionstate)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -218,12 +250,16 @@ let result = bluetooth.getProfileConnState(bluetooth.ProfileId.PROFILE_A2DP_SOUR ``` -## bluetooth.cancelPairedDevice8+ +## bluetooth.cancelPairedDevice8+(deprecated) cancelPairedDevice(deviceId: string): boolean 删除配对的远程设备。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.cancelPairedDevice](js-apis-bluetoothManager.md#bluetoothmanagercancelpaireddevice)替代。 + **系统接口**:此接口为系统接口。 **需要权限**:ohos.permission.DISCOVER_BLUETOOTH @@ -249,12 +285,16 @@ let result = bluetooth.cancelPairedDevice("XX:XX:XX:XX:XX:XX"); ``` -## bluetooth.getRemoteDeviceName8+ +## bluetooth.getRemoteDeviceName8+(deprecated) getRemoteDeviceName(deviceId: string): string 获取对端蓝牙设备的名称。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.getRemoteDeviceName](js-apis-bluetoothManager.md#bluetoothmanagergetremotedevicename)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -278,12 +318,16 @@ let remoteDeviceName = bluetooth.getRemoteDeviceName("XX:XX:XX:XX:XX:XX"); ``` -## bluetooth.getRemoteDeviceClass8+ +## bluetooth.getRemoteDeviceClass8+(deprecated) getRemoteDeviceClass(deviceId: string): DeviceClass 获取对端蓝牙设备的类别。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.getRemoteDeviceClass](js-apis-bluetoothManager.md#bluetoothmanagergetremotedeviceclass)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -307,12 +351,16 @@ let remoteDeviceClass = bluetooth.getRemoteDeviceClass("XX:XX:XX:XX:XX:XX"); ``` -## bluetooth.getPairedDevices8+ +## bluetooth.getPairedDevices8+(deprecated) getPairedDevices(): Array<string> 获取蓝牙配对列表。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.getPairedDevices](js-apis-bluetoothManager.md#bluetoothmanagergetpaireddevices)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -330,12 +378,16 @@ let devices = bluetooth.getPairedDevices(); ``` -## bluetooth.setBluetoothScanMode8+ +## bluetooth.setBluetoothScanMode8+(deprecated) setBluetoothScanMode(mode: ScanMode, duration: number): boolean 设置蓝牙扫描模式,可以被远端设备发现。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.setBluetoothScanMode](js-apis-bluetoothManager.md#bluetoothmanagersetbluetoothscanmode)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -361,12 +413,16 @@ let result = bluetooth.setBluetoothScanMode(bluetooth.ScanMode.SCAN_MODE_CONNECT ``` -## bluetooth.getBluetoothScanMode8+ +## bluetooth.getBluetoothScanMode8+(deprecated) getBluetoothScanMode(): ScanMode 获取蓝牙扫描模式。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.getBluetoothScanMode](js-apis-bluetoothManager.md#bluetoothmanagergetbluetoothscanmode)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -384,12 +440,16 @@ let scanMode = bluetooth.getBluetoothScanMode(); ``` -## bluetooth.startBluetoothDiscovery8+ +## bluetooth.startBluetoothDiscovery8+(deprecated) startBluetoothDiscovery(): boolean 开启蓝牙扫描,可以发现远端设备。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.startBluetoothDiscovery](js-apis-bluetoothManager.md#bluetoothmanagerstartbluetoothdiscovery)替代。 + **需要权限**:ohos.permission.DISCOVER_BLUETOOTH 和 ohos.permission.LOCATION **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -412,12 +472,16 @@ let result = bluetooth.startBluetoothDiscovery(); ``` -## bluetooth.stopBluetoothDiscovery8+ +## bluetooth.stopBluetoothDiscovery8+(deprecated) stopBluetoothDiscovery(): boolean 关闭蓝牙扫描。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.stopBluetoothDiscovery](js-apis-bluetoothManager.md#bluetoothmanagerstopbluetoothdiscovery)替代。 + **需要权限**:ohos.permission.DISCOVER_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -435,12 +499,16 @@ let result = bluetooth.stopBluetoothDiscovery(); ``` -## bluetooth.setDevicePairingConfirmation8+ +## bluetooth.setDevicePairingConfirmation8+(deprecated) setDevicePairingConfirmation(device: string, accept: boolean): boolean 设置设备配对请求确认。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.setDevicePairingConfirmation](js-apis-bluetoothManager.md#bluetoothmanagersetdevicepairingconfirmation)替代。 + **需要权限**:ohos.permission.MANAGE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -470,12 +538,16 @@ bluetooth.on("pinRequired", onReceivePinRequiredEvent); ``` -## bluetooth.on('bluetoothDeviceFind')8+ +## bluetooth.on('bluetoothDeviceFind')8+(deprecated) on(type: "bluetoothDeviceFind", callback: Callback<Array<string>>): void 订阅蓝牙设备发现上报事件。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.on('bluetoothDeviceFind')](js-apis-bluetoothManager.md#bluetoothmanageronbluetoothdevicefind)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -501,12 +573,16 @@ bluetooth.on('bluetoothDeviceFind', onReceiveEvent); ``` -## bluetooth.off('bluetoothDeviceFind')8+ +## bluetooth.off('bluetoothDeviceFind')8+(deprecated) off(type: "bluetoothDeviceFind", callback?: Callback<Array<string>>): void 取消订阅蓝牙设备发现上报事件。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.off('bluetoothDeviceFind')](js-apis-bluetoothManager.md#bluetoothmanageroffbluetoothdevicefind)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -533,12 +609,16 @@ bluetooth.off('bluetoothDeviceFind', onReceiveEvent); ``` -## bluetooth.on('pinRequired')8+ +## bluetooth.on('pinRequired')8+(deprecated) on(type: "pinRequired", callback: Callback<PinRequiredParam>): void 订阅远端蓝牙设备的配对请求事件。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.on('pinRequired')](js-apis-bluetoothManager.md#bluetoothmanageronpinrequired)替代。 + **需要权限**:ohos.permission.DISCOVER_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -564,12 +644,16 @@ bluetooth.on('pinRequired', onReceiveEvent); ``` -## bluetooth.off('pinRequired')8+ +## bluetooth.off('pinRequired')8+(deprecated) off(type: "pinRequired", callback?: Callback<PinRequiredParam>): void 取消订阅远端蓝牙设备的配对请求事件。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.off('pinRequired')](js-apis-bluetoothManager.md#bluetoothmanageroffpinrequired)替代。 + **需要权限**:ohos.permission.DISCOVER_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -596,12 +680,16 @@ bluetooth.off('pinRequired', onReceiveEvent); ``` -## bluetooth.on('bondStateChange')8+ +## bluetooth.on('bondStateChange')8+(deprecated) on(type: "bondStateChange", callback: Callback<BondStateParam>): void 订阅蓝牙配对状态改变事件。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.on('bondStateChange')](js-apis-bluetoothManager.md#bluetoothmanageronbondstatechange)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -627,12 +715,16 @@ bluetooth.on('bondStateChange', onReceiveEvent); ``` -## bluetooth.off('bondStateChange')8+ +## bluetooth.off('bondStateChange')8+(deprecated) off(type: "bondStateChange", callback?: Callback<BondStateParam>): void 取消订阅蓝牙配对状态改变事件。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.off('bondStateChange')](js-apis-bluetoothManager.md#bluetoothmanageroffbondstatechange)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -659,12 +751,16 @@ bluetooth.off('bondStateChange', onReceiveEvent); ``` -## bluetooth.on('stateChange')8+ +## bluetooth.on('stateChange')8+(deprecated) on(type: "stateChange", callback: Callback<BluetoothState>): void 订阅蓝牙连接状态改变事件。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.on('stateChange')](js-apis-bluetoothManager.md#bluetoothmanageronstatechange)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -690,12 +786,16 @@ bluetooth.on('stateChange', onReceiveEvent); ``` -## bluetooth.off('stateChange')8+ +## bluetooth.off('stateChange')8+(deprecated) off(type: "stateChange", callback?: Callback<BluetoothState>): void 取消订阅蓝牙连接状态改变事件。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.off('stateChange')](js-apis-bluetoothManager.md#bluetoothmanageroffstatechange)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -722,12 +822,16 @@ bluetooth.off('stateChange', onReceiveEvent); ``` -## bluetooth.sppListen8+ +## bluetooth.sppListen8+(deprecated) sppListen(name: string, option: SppOption, callback: AsyncCallback<number>): void 创建一个服务端监听Socket。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.sppListen](js-apis-bluetoothManager.md#bluetoothmanagerspplisten)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -757,12 +861,16 @@ bluetooth.sppListen('server1', sppOption, serverSocket); ``` -## bluetooth.sppAccept8+ +## bluetooth.sppAccept8+(deprecated) sppAccept(serverSocket: number, callback: AsyncCallback<number>): void 服务端监听socket等待客户端连接。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.sppAccept](js-apis-bluetoothManager.md#bluetoothmanagersppaccept)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 **参数:** @@ -796,12 +904,16 @@ bluetooth.sppAccept(serverNumber, acceptClientSocket); ``` -## bluetooth.sppConnect8+ +## bluetooth.sppConnect8+(deprecated) sppConnect(device: string, option: SppOption, callback: AsyncCallback<number>): void 客户端向远端设备发起spp连接。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.sppConnect](js-apis-bluetoothManager.md#bluetoothmanagersppconnect)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -832,12 +944,16 @@ bluetooth.sppConnect('XX:XX:XX:XX:XX:XX', sppOption, clientSocket); ``` -## bluetooth.sppCloseServerSocket8+ +## bluetooth.sppCloseServerSocket8+(deprecated) sppCloseServerSocket(socket: number): void 关闭服务端监听Socket,入参socket由sppListen接口返回。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.sppCloseServerSocket](js-apis-bluetoothManager.md#bluetoothmanagersppcloseserversocket)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 **参数:** @@ -861,12 +977,16 @@ bluetooth.sppCloseServerSocket(serverNumber); ``` -## bluetooth.sppCloseClientSocket8+ +## bluetooth.sppCloseClientSocket8+(deprecated) sppCloseClientSocket(socket: number): void 关闭客户端socket,入参socket由sppAccept或sppConnect接口获取。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.sppCloseClientSocket](js-apis-bluetoothManager.md#bluetoothmanagersppcloseclientsocket)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 **参数:** @@ -892,12 +1012,16 @@ bluetooth.sppCloseClientSocket(clientNumber); ``` -## bluetooth.sppWrite8+ +## bluetooth.sppWrite8+(deprecated) sppWrite(clientSocket: number, data: ArrayBuffer): boolean 通过socket向远端发送数据,入参clientSocket由sppAccept或sppConnect接口获取 。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.sppWrite](js-apis-bluetoothManager.md#bluetoothmanagersppwrite)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 **参数:** @@ -937,10 +1061,14 @@ if (ret) { ``` -## bluetooth.on('sppRead')8+ +## bluetooth.on('sppRead')8+(deprecated) on(type: "sppRead", clientSocket: number, callback: Callback<ArrayBuffer>): void +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.on('sppRead')](js-apis-bluetoothManager.md#bluetoothmanageronsppread)替代。 + 订阅spp读请求事件,入参clientSocket由sppAccept或sppConnect接口获取。 **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -977,12 +1105,16 @@ bluetooth.on('sppRead', clientNumber, dataRead); ``` -## bluetooth.off('sppRead')8+ +## bluetooth.off('sppRead')8+(deprecated) off(type: "sppRead", clientSocket: number, callback?: Callback<ArrayBuffer>): void 取消订阅spp读请求事件,入参clientSocket由sppAccept或sppConnect接口获取。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.off('sppRead')](js-apis-bluetoothManager.md#bluetoothmanageroffsppread)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 **参数:** @@ -1013,12 +1145,16 @@ bluetooth.off('sppRead', clientNumber); ``` -## bluetooth.getProfile8+ +## bluetooth.getProfile8+(deprecated) getProfile(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile 通过ProfileId,获取profile的对象实例。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.getProfileInstance](js-apis-bluetoothManager.md#bluetoothmanagergetprofileinstance)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 **参数:** @@ -1039,41 +1175,19 @@ getProfile(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfi let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE); ``` -## bluetooth.getProfileInst9+ - -getProfileInst(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile | HidHostProfile | PanProfile - -通过ProfileId,获取profile的对象实例,API9新增了HidHostProfile,PanProfile。 - -**系统能力**:SystemCapability.Communication.Bluetooth.Core。 - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| --------- | --------- | ---- | ------------------------------------- | -| profileId | [ProfileId](#ProfileId) | 是 | 表示profile的枚举值,例如:PROFILE_A2DP_SOURCE。 | - -**返回值:** - -| 类型 | 说明 | -| ------------------------------------------------------------ | ------------------------------------------------------------ | -| [A2dpSourceProfile](#a2dpsourceprofile)或 [HandsFreeAudioGatewayProfile](#handsfreeaudiogatewayprofile)或[HidHostProfile](#hidhostprofile)或[PanProfile](#panprofile) | 对应的profile的对象实例,当前支持A2dpSourceProfile/HandsFreeAudioGatewayProfile/HidHostProfile/PanProfile。 | - -**示例:** - -```js -let hidHost = bluetooth.getProfileInst(bluetooth.ProfileId.PROFILE_HID_HOST); -``` - ## bluetooth.BLE -### bluetooth.BLE.createGattServer +### bluetooth.BLE.createGattServer(deprecated) createGattServer(): GattServer 创建一个可使用的GattServer实例。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.BLE.createGattServer](js-apis-bluetoothManager.md#bluetoothmanagerblecreategattserver)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 **返回值:** @@ -1089,12 +1203,16 @@ let gattServer = bluetooth.BLE.createGattServer(); ``` -### bluetooth.BLE.createGattClientDevice +### bluetooth.BLE.createGattClientDevice(deprecated) createGattClientDevice(deviceId: string): GattClientDevice 创建一个可使用的GattClientDevice实例。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.BLE.createGattClientDevice](js-apis-bluetoothManager.md#bluetoothmanagerblecreategattclientdevice)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 **参数:** @@ -1116,12 +1234,16 @@ let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); ``` -### bluetooth.BLE.getConnectedBLEDevices +### bluetooth.BLE.getConnectedBLEDevices(deprecated) getConnectedBLEDevices(): Array<string> 获取和当前设备连接的BLE设备。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.BLE.getConnectedBLEDevices](js-apis-bluetoothManager.md#bluetoothmanagerblegetconnectedbledevices)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -1139,12 +1261,16 @@ let result = bluetooth.BLE.getConnectedBLEDevices(); ``` -### bluetooth.BLE.startBLEScan +### bluetooth.BLE.startBLEScan(deprecated) startBLEScan(filters: Array<ScanFilter>, options?: ScanOptions): void 发起BLE扫描流程。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.BLE.startBLEScan](js-apis-bluetoothManager.md#bluetoothmanagerblestartblescan)替代。 + **需要权限**:ohos.permission.DISCOVER_BLUETOOTH 和 ohos.permission.MANAGE_BLUETOOTH 和 ohos.permission.LOCATION **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -1182,12 +1308,16 @@ bluetooth.BLE.startBLEScan( ``` -### bluetooth.BLE.stopBLEScan +### bluetooth.BLE.stopBLEScan(deprecated) stopBLEScan(): void 停止BLE扫描流程。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.BLE.stopBLEScan](js-apis-bluetoothManager.md#bluetoothmanagerblestopblescan)替代。 + **需要权限**:ohos.permission.DISCOVER_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -1203,12 +1333,16 @@ bluetooth.BLE.stopBLEScan(); ``` -### bluetooth.BLE.on('BLEDeviceFind') +### bluetooth.BLE.on('BLEDeviceFind')(deprecated) on(type: "BLEDeviceFind", callback: Callback<Array<ScanResult>>): void 订阅BLE设备发现上报事件。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.BLE.on('BLEDeviceFind')](js-apis-bluetoothManager.md#bluetoothmanagerbleonbledevicefind)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -1234,12 +1368,16 @@ bluetooth.BLE.on('BLEDeviceFind', onReceiveEvent); ``` -### bluetooth.BLE.off('BLEDeviceFind') +### bluetooth.BLE.off('BLEDeviceFind')(deprecated) off(type: "BLEDeviceFind", callback?: Callback<Array<ScanResult>>): void 取消订阅BLE设备发现上报事件。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.BLE.off('BLEDeviceFind')](js-apis-bluetoothManager.md#bluetoothmanagerbleoffbledevicefind)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -1271,12 +1409,16 @@ bluetooth.BLE.off('BLEDeviceFind', onReceiveEvent); profile基类。 -### getConnectionDevices8+ +### getConnectionDevices8+(deprecated) getConnectionDevices(): Array<string> 获取已连接设备列表。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.BaseProfile.getConnectionDevices](js-apis-bluetoothManager.md#getconnectiondevices)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -1294,12 +1436,16 @@ let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE) as b let retArray = a2dpSrc.getConnectionDevices(); ``` -### getDeviceState8+ +### getDeviceState8+(deprecated) getDeviceState(device: string): ProfileConnectionState 获取设备profile的连接状态。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.BaseProfile.getDeviceState](js-apis-bluetoothManager.md#getdevicestate)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -1328,12 +1474,16 @@ let ret = a2dpSrc.getDeviceState('XX:XX:XX:XX:XX:XX'); 使用A2dpSourceProfile方法之前需要创建该类的实例进行操作,通过getProfile()方法构造此实例。 -### connect8+ +### connect8+(deprecated) connect(device: string): boolean 发起设备的A2dp服务连接请求。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.A2dpSourceProfile.connect](js-apis-bluetoothManager.md#connect)替代。 + **需要权限**:ohos.permission.DISCOVER_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -1358,12 +1508,16 @@ let ret = a2dpSrc.connect('XX:XX:XX:XX:XX:XX'); ``` -### disconnect8+ +### disconnect8+(deprecated) disconnect(device: string): boolean 断开设备的a2dp服务连接。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.A2dpSourceProfile.disconnect](js-apis-bluetoothManager.md#disconnect)替代。 + **需要权限**:ohos.permission.DISCOVER_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -1388,12 +1542,16 @@ let ret = a2dpSrc.disconnect('XX:XX:XX:XX:XX:XX'); ``` -### on('connectionStateChange')8+ +### on('connectionStateChange')8+(deprecated) on(type: "connectionStateChange", callback: Callback<[StateChangeParam](#StateChangeParam)>): void 订阅a2dp连接状态变化事件。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.A2dpSourceProfile.on('connectionStateChange')](js-apis-bluetoothManager.md#onconnectionstatechange)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 **参数:** @@ -1418,12 +1576,16 @@ a2dpSrc.on('connectionStateChange', onReceiveEvent); ``` -### off('connectionStateChange')8+ +### off('connectionStateChange')8+(deprecated) off(type: "connectionStateChange", callback?: Callback<[StateChangeParam](#StateChangeParam)>): void 取消订阅a2dp连接状态变化事件。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.A2dpSourceProfile.off('connectionStateChange')](js-apis-bluetoothManager.md#offconnectionstatechange)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 **参数:** @@ -1449,12 +1611,16 @@ a2dpSrc.off('connectionStateChange', onReceiveEvent); ``` -### getPlayingState8+ +### getPlayingState8+(deprecated) getPlayingState(device: string): PlayingState 获取设备的播放状态。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.A2dpSourceProfile.getPlayingState](js-apis-bluetoothManager.md#getplayingstate)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 **参数:** @@ -1482,12 +1648,16 @@ let state = a2dpSrc.getPlayingState('XX:XX:XX:XX:XX:XX'); 使用HandsFreeAudioGatewayProfile方法之前需要创建该类的实例进行操作,通过getProfile()方法构造此实例。 -### connect8+ +### connect8+(deprecated) connect(device: string): boolean 连接设备的HFP服务。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.HandsFreeAudioGatewayProfile.connect](js-apis-bluetoothManager.md#connect-1)替代。 + **需要权限**:ohos.permission.DISCOVER_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -1513,12 +1683,16 @@ let ret = hfpAg.connect('XX:XX:XX:XX:XX:XX'); ``` -### disconnect8+ +### disconnect8+(deprecated) disconnect(device: string): boolean 断开连接设备的HFP服务。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.HandsFreeAudioGatewayProfile.disconnect](js-apis-bluetoothManager.md#disconnect-1)替代。 + **需要权限**:ohos.permission.DISCOVER_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -1544,12 +1718,16 @@ let ret = hfpAg.disconnect('XX:XX:XX:XX:XX:XX'); ``` -### on('connectionStateChange')8+ +### on('connectionStateChange')8+(deprecated) on(type: "connectionStateChange", callback: Callback<[StateChangeParam](#StateChangeParam)>): void 订阅HFP连接状态变化事件。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.HandsFreeAudioGatewayProfile.on('connectionStateChange')](js-apis-bluetoothManager.md#onconnectionstatechange-1)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 **参数:** @@ -1575,12 +1753,16 @@ hfpAg.on('connectionStateChange', onReceiveEvent); ``` -### off('connectionStateChange')8+ +### off('connectionStateChange')8+(deprecated) off(type: "connectionStateChange", callback?: Callback<[StateChangeParam](#StateChangeParam)>): void 取消订阅HFP连接状态变化事件。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.HandsFreeAudioGatewayProfile.off('connectionStateChange')](js-apis-bluetoothManager.md#offconnectionstatechange-1)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 **参数:** @@ -1607,301 +1789,21 @@ hfpAg.off('connectionStateChange', onReceiveEvent); ``` -## HidHostProfile - -使用HidHostProfile方法之前需要创建该类的实例进行操作,通过getProfile()方法构造此实例。 - - -### connect9+ - -connect(device: string): boolean - -连接设备的HidHost服务。 - -**系统接口**:此接口为系统接口。 - -**需要权限**:ohos.permission.DISCOVER_BLUETOOTH - -**系统能力**:SystemCapability.Communication.Bluetooth.Core。 - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------ | ---- | ------- | -| device | string | 是 | 远端设备地址。 | - -**返回值:** - -| 类型 | 说明 | -| --------------------- | --------------------------------- | -| boolean | 成功返回true,失败返回false。 | - -**示例:** - -```js -let hidHostProfile = bluetooth.getProfileInst(bluetooth.ProfileId.PROFILE_HID_HOST) as bluetooth.HidHostProfile; -let ret = hidHostProfile.connect('XX:XX:XX:XX:XX:XX'); -``` - - -### disconnect9+ - -disconnect(device: string): boolean - -断开连接设备的HidHost服务。 - -**系统接口**:此接口为系统接口。 - -**需要权限**:ohos.permission.DISCOVER_BLUETOOTH - -**系统能力**:SystemCapability.Communication.Bluetooth.Core。 - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------ | ---- | ------- | -| device | string | 是 | 远端设备地址。 | - -**返回值:** - -| 类型 | 说明 | -| --------------------- | --------------------------------- | -| boolean | 成功返回true,失败返回false。 | - -**示例:** - -```js -let hidHostProfile = bluetooth.getProfileInst(bluetooth.ProfileId.PROFILE_HID_HOST) as bluetooth.HidHostProfile; -let ret = hidHostProfile.disconnect('XX:XX:XX:XX:XX:XX'); -``` - - -### on('connectionStateChange')9+ - -on(type: "connectionStateChange", callback: Callback<[StateChangeParam](#StateChangeParam)>): void - -订阅HidHost连接状态变化事件。 - -**系统能力**:SystemCapability.Communication.Bluetooth.Core。 - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | ---------------------------------------- | -| type | string | 是 | 填写"connectionStateChange"字符串,表示连接状态变化事件。 | -| callback | Callback<[StateChangeParam](#StateChangeParam)> | 是 | 表示回调函数的入参。 | - -**返回值:** - -无 - -**示例:** - -```js -function onReceiveEvent(data) { - console.info('hidHost state = '+ JSON.stringify(data)); -} -let hidHost = bluetooth.getProfileInst(bluetooth.ProfileId.PROFILE_HID_HOST) as bluetooth.HidHostProfile; -hidHost.on('connectionStateChange', onReceiveEvent); -``` - - -### off('connectionStateChange')9+ - -off(type: "connectionStateChange", callback?: Callback<[StateChangeParam](#StateChangeParam)>): void - -取消订阅HidHost连接状态变化事件。 - -**系统能力**:SystemCapability.Communication.Bluetooth.Core。 - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------------------------------- | ---- | --------------------------------------------------------- | -| type | string | 是 | 填写"connectionStateChange"字符串,表示连接状态变化事件。 | -| callback | Callback<[StateChangeParam](#StateChangeParam)> | 否 | 表示回调函数的入参。 | - -**返回值:** - -无 - -**示例:** - -```js -function onReceiveEvent(data) { - console.info('hidHost state = '+ JSON.stringify(data)); -} -let hidHost = bluetooth.getProfileInst(bluetooth.ProfileId.PROFILE_HID_HOST) as bluetooth.HidHostProfile; -hidHost.on('connectionStateChange', onReceiveEvent); -hidHost.off('connectionStateChange', onReceiveEvent); -``` - - -## PanProfile - -使用PanProfile方法之前需要创建该类的实例进行操作,通过getProfile()方法构造此实例。 - - -### disconnect9+ - -disconnect(device: string): boolean - -断开连接设备的Pan服务。 - -**系统接口**:此接口为系统接口。 - -**需要权限**:ohos.permission.USE_BLUETOOTH - -**系统能力**:SystemCapability.Communication.Bluetooth.Core。 - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------ | ---- | ------- | -| device | string | 是 | 远端设备地址。 | - -**返回值:** - -| 类型 | 说明 | -| --------------------- | --------------------------------- | -| boolean | 成功返回true,失败返回false。 | - -**示例:** - -```js -let panProfile = bluetooth.getProfileInst(bluetooth.ProfileId.PROFILE_PAN_NETWORK) as bluetooth.PanProfile; -let ret = panProfile.disconnect('XX:XX:XX:XX:XX:XX'); -``` - - -### on('connectionStateChange')9+ - -on(type: "connectionStateChange", callback: Callback<[StateChangeParam](#StateChangeParam)>): void - -订阅Pan连接状态变化事件。 - -**系统能力**:SystemCapability.Communication.Bluetooth.Core。 - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | ---------------------------------------- | -| type | string | 是 | 填写"connectionStateChange"字符串,表示连接状态变化事件。 | -| callback | Callback<[StateChangeParam](#StateChangeParam)> | 是 | 表示回调函数的入参。 | - -**返回值:** - -无 - -**示例:** - -```js -function onReceiveEvent(data) { - console.info('pan state = '+ JSON.stringify(data)); -} -let panProfile = bluetooth.getProfileInst(bluetooth.ProfileId.PROFILE_PAN_NETWORK) as bluetooth.PanProfile; -panProfile.on('connectionStateChange', onReceiveEvent); -``` - - -### off('connectionStateChange')9+ - -off(type: "connectionStateChange", callback?: Callback<[StateChangeParam](#StateChangeParam)>): void - -取消订阅Pan连接状态变化事件。 - -**系统能力**:SystemCapability.Communication.Bluetooth.Core。 - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------------------------------- | ---- | --------------------------------------------------------- | -| type | string | 是 | 填写"connectionStateChange"字符串,表示连接状态变化事件。 | -| callback | Callback<[StateChangeParam](#StateChangeParam)> | 否 | 表示回调函数的入参。 | - -**返回值:** - -无 - -**示例:** - -```js -function onReceiveEvent(data) { - console.info('pan state = '+ JSON.stringify(data)); -} -let panProfile = bluetooth.getProfileInst(bluetooth.ProfileId.PROFILE_PAN_NETWORK) as bluetooth.PanProfile; -panProfile.on('connectionStateChange', onReceiveEvent); -panProfile.off('connectionStateChange', onReceiveEvent); -``` - - -### setTethering9+ - -setTethering(enable: boolean): void - -设置网络共享状态。 - -**系统接口**:此接口为系统接口。 - -**需要权限**:ohos.permission.DISCOVER_BLUETOOTH - -**系统能力**:SystemCapability.Communication.Bluetooth.Core。 - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------ | ---- | ------- | -| value | boolean | 是 | 是否设置蓝牙共享。 | - -**返回值:** - -| 类型 | 说明 | -| --------------------- | --------------------------------- | -| boolean | 成功返回true,失败返回false。 | - -**示例:** - -```js -let panProfile = bluetooth.getProfileInst(bluetooth.ProfileId.PROFILE_PAN_NETWORK) as bluetooth.PanProfile; -let ret = panProfile.setTethering(true); -``` - - -### isTetheringOn9+ - -isTetheringOn(): boolean - -获取网络共享状态。 - -**系统接口**:此接口为系统接口。 - -**系统能力**:SystemCapability.Communication.Bluetooth.Core。 - -**返回值:** - -| 类型 | 说明 | -| --------------------- | --------------------------------- | -| boolean | 网络共享开启返回true,网络共享关闭返回false。 | - -**示例:** - -```js -let panProfile = bluetooth.getProfileInst(bluetooth.ProfileId.PROFILE_PAN_NETWORK) as bluetooth.PanProfile; -let ret = panProfile.isTetheringOn(); -``` - - ## GattServer server端类,使用server端方法之前需要创建该类的实例进行操作,通过createGattServer()方法构造此实例。 -### startAdvertising +### startAdvertising(deprecated) startAdvertising(setting: AdvertiseSetting, advData: AdvertiseData, advResponse?: AdvertiseData): void 开始发送BLE广播。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattServer.startAdvertising](js-apis-bluetoothManager.md#startadvertising)替代。 + **需要权限**:ohos.permission.DISCOVER_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -1963,12 +1865,16 @@ gattServer.startAdvertising({ ``` -### stopAdvertising +### stopAdvertising(deprecated) stopAdvertising(): void 停止发送BLE广播。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattServer.stopAdvertising](js-apis-bluetoothManager.md#stopadvertising)替代。 + **需要权限**:ohos.permission.DISCOVER_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -1985,12 +1891,16 @@ server.stopAdvertising(); ``` -### addService +### addService(deprecated) addService(service: GattService): boolean server端添加服务。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattServer.addService](js-apis-bluetoothManager.md#addservice)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2044,12 +1954,16 @@ if (ret) { ``` -### removeService +### removeService(deprecated) removeService(serviceUuid: string): boolean 删除已添加的服务。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattServer.removeService](js-apis-bluetoothManager.md#removeservice)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2074,12 +1988,16 @@ server.removeService('00001810-0000-1000-8000-00805F9B34FB'); ``` -### close +### close(deprecated) close(): void 关闭服务端功能,去注册server在协议栈的注册,调用该接口后[GattServer](#gattserver)实例将不能再使用。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattServer.close](js-apis-bluetoothManager.md#close)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2092,12 +2010,16 @@ server.close(); ``` -### notifyCharacteristicChanged +### notifyCharacteristicChanged(deprecated) notifyCharacteristicChanged(deviceId: string, notifyCharacteristic: NotifyCharacteristic): boolean server端特征值发生变化时,主动通知已连接的client设备。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattServer.notifyCharacteristicChanged](js-apis-bluetoothManager.md#notifycharacteristicchanged)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2137,12 +2059,16 @@ server.notifyCharacteristicChanged('XX:XX:XX:XX:XX:XX', notifyCharacteristic); ``` -### sendResponse +### sendResponse(deprecated) sendResponse(serverResponse: ServerResponse): boolean server端回复client端的读写请求。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattServer.sendResponse](js-apis-bluetoothManager.md#sendresponse)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2184,12 +2110,16 @@ if (ret) { ``` -### on('characteristicRead') +### on('characteristicRead')(deprecated) on(type: "characteristicRead", callback: Callback<CharacteristicReadReq>): void server端订阅特征值读请求事件。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattServer.on('characteristicRead')](js-apis-bluetoothManager.md#oncharacteristicread)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2232,12 +2162,16 @@ gattServer.on("characteristicRead", ReadCharacteristicReq); ``` -### off('characteristicRead') +### off('characteristicRead')(deprecated) off(type: "characteristicRead", callback?: Callback<CharacteristicReadReq>): void server端取消订阅特征值读请求事件。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattServer.off('characteristicRead')](js-apis-bluetoothManager.md#offcharacteristicread)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2261,12 +2195,16 @@ gattServer.off("characteristicRead"); ``` -### on('characteristicWrite') +### on('characteristicWrite')(deprecated) on(type: "characteristicWrite", callback: Callback<CharacteristicWriteReq>): void server端订阅特征值写请求事件。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattServer.on('characteristicWrite')](js-apis-bluetoothManager.md#oncharacteristicwrite)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2312,12 +2250,16 @@ gattServer.on("characteristicWrite", WriteCharacteristicReq); ``` -### off('characteristicWrite') +### off('characteristicWrite')(deprecated) off(type: "characteristicWrite", callback?: Callback<CharacteristicWriteReq>): void server端取消订阅特征值写请求事件。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattServer.off('characteristicWrite')](js-apis-bluetoothManager.md#offcharacteristicwrite)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2341,12 +2283,16 @@ gattServer.off("characteristicWrite"); ``` -### on('descriptorRead') +### on('descriptorRead')(deprecated) on(type: "descriptorRead", callback: Callback<DescriptorReadReq>): void server端订阅描述符读请求事件。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattServer.on('descriptorRead')](js-apis-bluetoothManager.md#ondescriptorread)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2389,12 +2335,16 @@ gattServer.on("descriptorRead", ReadDescriptorReq); ``` -### off('descriptorRead') +### off('descriptorRead')(deprecated) off(type: "descriptorRead", callback?: Callback<DescriptorReadReq>): void server端取消订阅描述符读请求事件。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattServer.off('descriptorRead')](js-apis-bluetoothManager.md#offdescriptorread)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2418,12 +2368,16 @@ gattServer.off("descriptorRead"); ``` -### on('descriptorWrite') +### on('descriptorWrite')(deprecated) on(type: "descriptorWrite", callback: Callback<DescriptorWriteReq>): void server端订阅描述符写请求事件。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattServer.on('descriptorWrite')](js-apis-bluetoothManager.md#ondescriptorwrite)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2469,12 +2423,16 @@ gattServer.on("descriptorRead", WriteDescriptorReq); ``` -### off('descriptorWrite') +### off('descriptorWrite')(deprecated) off(type: "descriptorWrite", callback?: Callback<DescriptorWriteReq>): void server端取消订阅描述符写请求事件。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattServer.off('descriptorWrite')](js-apis-bluetoothManager.md#offdescriptorwrite)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2498,12 +2456,16 @@ gattServer.off("descriptorWrite"); ``` -### on('connectStateChange') +### on('connectStateChange')(deprecated) on(type: "connectStateChange", callback: Callback<BLEConnectChangedState>): void server端订阅BLE连接状态变化事件。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattServer.on('connectStateChange')](js-apis-bluetoothManager.md#onconnectstatechange)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2532,12 +2494,16 @@ gattServer.on("connectStateChange", Connected); ``` -### off('connectStateChange') +### off('connectStateChange')(deprecated) off(type: "connectStateChange", callback?: Callback<BLEConnectChangedState>): void server端取消订阅BLE连接状态变化事件。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattServer.off('connectStateChange')](js-apis-bluetoothManager.md#offconnectstatechange)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2566,12 +2532,16 @@ gattServer.off("connectStateChange"); client端类,使用client端方法之前需要创建该类的实例进行操作,通过createGattClientDevice(deviceId: string)方法构造此实例。 -### connect +### connect(deprecated) connect(): boolean client端发起连接远端蓝牙低功耗设备。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.connect](js-apis-bluetoothManager.md#connect-3)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2590,12 +2560,16 @@ let ret = device.connect(); ``` -### disconnect +### disconnect(deprecated) disconnect(): boolean client端断开与远端蓝牙低功耗设备的连接。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.disconnect](js-apis-bluetoothManager.md#disconnect-4)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2614,12 +2588,16 @@ let ret = device.disconnect(); ``` -### close +### close(deprecated) close(): boolean 关闭客户端功能,注销client在协议栈的注册,调用该接口后[GattClientDevice](#gattclientdevice)实例将不能再使用。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.close](js-apis-bluetoothManager.md#close-1)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2640,12 +2618,16 @@ let ret = device.close(); -### getServices +### getServices(deprecated) getServices(callback: AsyncCallback<Array<GattService>>): void client端获取蓝牙低功耗设备的所有服务,即服务发现 。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.getServices](js-apis-bluetoothManager.md#getservices)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2682,12 +2664,16 @@ device.getServices(getServices); ``` -### getServices +### getServices(deprecated) getServices(): Promise<Array<GattService>> client端获取蓝牙低功耗设备的所有服务,即服务发现。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.getServices](js-apis-bluetoothManager.md#getservices-1)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2710,12 +2696,16 @@ device.getServices().then(result => { ``` -### readCharacteristicValue +### readCharacteristicValue(deprecated) readCharacteristicValue(characteristic: BLECharacteristic, callback: AsyncCallback<BLECharacteristic>): void client端读取蓝牙低功耗设备特定服务的特征值。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.readCharacteristicValue](js-apis-bluetoothManager.md#readcharacteristicvalue)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2764,12 +2754,16 @@ device.readCharacteristicValue(characteristic, readCcc); ``` -### readCharacteristicValue +### readCharacteristicValue(deprecated) readCharacteristicValue(characteristic: BLECharacteristic): Promise<BLECharacteristic> client端读取蓝牙低功耗设备特定服务的特征值。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.readCharacteristicValue](js-apis-bluetoothManager.md#readcharacteristicvalue-1)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2810,12 +2804,16 @@ device.readCharacteristicValue(characteristic); ``` -### readDescriptorValue +### readDescriptorValue(deprecated) readDescriptorValue(descriptor: BLEDescriptor, callback: AsyncCallback<BLEDescriptor>): void client端读取蓝牙低功耗设备特定的特征包含的描述符。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.readDescriptorValue](js-apis-bluetoothManager.md#readdescriptorvalue)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2854,12 +2852,16 @@ device.readDescriptorValue(descriptor, readDesc); ``` -### readDescriptorValue +### readDescriptorValue(deprecated) readDescriptorValue(descriptor: BLEDescriptor): Promise<BLEDescriptor> client端读取蓝牙低功耗设备特定的特征包含的描述符。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.readDescriptorValue](js-apis-bluetoothManager.md#readdescriptorvalue-1)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2890,12 +2892,16 @@ device.readDescriptorValue(descriptor); ``` -### writeCharacteristicValue +### writeCharacteristicValue(deprecated) writeCharacteristicValue(characteristic: BLECharacteristic): boolean client端向低功耗蓝牙设备写入特定的特征值。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.writeCharacteristicValue](js-apis-bluetoothManager.md#writecharacteristicvalue)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2940,12 +2946,16 @@ if (retWriteCcc) { ``` -### writeDescriptorValue +### writeDescriptorValue(deprecated) writeDescriptorValue(descriptor: BLEDescriptor): boolean client端向低功耗蓝牙设备特定的描述符写入二进制数据。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.writeDescriptorValue](js-apis-bluetoothManager.md#writedescriptorvalue)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -2981,12 +2991,16 @@ if (retWriteDesc) { ``` -### setBLEMtuSize +### setBLEMtuSize(deprecated) setBLEMtuSize(mtu: number): boolean client协商远端蓝牙低功耗设备的最大传输单元(Maximum Transmission Unit, MTU),调用[connect](#connect)接口连接成功后才能使用。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.setBLEMtuSize](js-apis-bluetoothManager.md#setblemtusize)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -3011,12 +3025,16 @@ device.setBLEMtuSize(128); ``` -### setNotifyCharacteristicChanged +### setNotifyCharacteristicChanged(deprecated) setNotifyCharacteristicChanged(characteristic: BLECharacteristic, enable: boolean): boolean 向服务端发送设置通知此特征值请求。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.setNotifyCharacteristicChanged](js-apis-bluetoothManager.md#setnotifycharacteristicchanged)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -3054,12 +3072,16 @@ device.setNotifyCharacteristicChanged(characteristic, false); ``` -### on('BLECharacteristicChange') +### on('BLECharacteristicChange')(deprecated) on(type: "BLECharacteristicChange", callback: Callback<BLECharacteristic>): void 订阅蓝牙低功耗设备的特征值变化事件。需要先调用setNotifyCharacteristicChanged接口才能接收server端的通知。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.on('BLECharacteristicChange')](js-apis-bluetoothManager.md#onblecharacteristicchange)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -3088,12 +3110,16 @@ device.on('BLECharacteristicChange', CharacteristicChange); ``` -### off('BLECharacteristicChange') +### off('BLECharacteristicChange')(deprecated) off(type: "BLECharacteristicChange", callback?: Callback<BLECharacteristic>): void 取消订阅蓝牙低功耗设备的特征值变化事件。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.off('BLECharacteristicChange')](js-apis-bluetoothManager.md#offblecharacteristicchange)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -3117,12 +3143,16 @@ device.off('BLECharacteristicChange'); ``` -### on('BLEConnectionStateChange') +### on('BLEConnectionStateChange')(deprecated) on(type: "BLEConnectionStateChange", callback: Callback<BLEConnectChangedState>): void client端订阅蓝牙低功耗设备的连接状态变化事件。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.on('BLEConnectionStateChange')](js-apis-bluetoothManager.md#onbleconnectionstatechange)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -3150,12 +3180,16 @@ device.on('BLEConnectionStateChange', ConnectStateChanged); ``` -### off('BLEConnectionStateChange') +### off('BLEConnectionStateChange')(deprecated) off(type: "BLEConnectionStateChange", callback?: Callback<BLEConnectChangedState>): void 取消订阅蓝牙低功耗设备的连接状态变化事件。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.off('BLEConnectionStateChange')](js-apis-bluetoothManager.md#offbleconnectionstatechange)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -3179,12 +3213,16 @@ device.off('BLEConnectionStateChange'); ``` -### getDeviceName +### getDeviceName(deprecated) getDeviceName(callback: AsyncCallback<string>): void client获取远端蓝牙低功耗设备名。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.getDeviceName](js-apis-bluetoothManager.md#getdevicename)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -3211,12 +3249,16 @@ let deviceName = gattClient.getDeviceName((err, data)=> { ``` -### getDeviceName +### getDeviceName(deprecated) getDeviceName(): Promise<string> client获取远端蓝牙低功耗设备名。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.getDeviceName](js-apis-bluetoothManager.md#getdevicename-1)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -3239,12 +3281,16 @@ let deviceName = gattClient.getDeviceName().then((data) => { ``` -### getRssiValue +### getRssiValue(deprecated) getRssiValue(callback: AsyncCallback<number>): void client获取远端蓝牙低功耗设备的信号强度 (Received Signal Strength Indication, RSSI),调用[connect](#connect)接口连接成功后才能使用。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.getRssiValue](js-apis-bluetoothManager.md#getrssivalue)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -3272,12 +3318,16 @@ let rssi = gattClient.getRssiValue((err, data)=> { ``` -### getRssiValue +### getRssiValue(deprecated) getRssiValue(): Promise<number> client获取远端蓝牙低功耗设备的信号强度 (Received Signal Strength Indication, RSSI),调用[connect](#connect)接口连接成功后才能使用。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattClientDevice.getRssiValue](js-apis-bluetoothManager.md#getrssivalue-1)替代。 + **需要权限**:ohos.permission.USE_BLUETOOTH **系统能力**:SystemCapability.Communication.Bluetooth.Core。 @@ -3298,10 +3348,14 @@ let rssi = gattClient.getRssiValue().then((data) => { }) ``` -## ScanMode8+ +## ScanMode8+(deprecated) 枚举,扫描模式。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.ScanMode](js-apis-bluetoothManager.md#scanmode)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 值 | 说明 | @@ -3313,10 +3367,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE | 4 | 可连接general发现模式。 | | SCAN_MODE_CONNECTABLE_LIMITED_DISCOVERABLE | 5 | 可连接limited发现模式。 | -## BondState8+ +## BondState8+(deprecated) 枚举,配对状态。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.BondState](js-apis-bluetoothManager.md#bondstate)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 值 | 说明 | @@ -3326,10 +3384,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | BOND_STATE_BONDED | 2 | 已配对。 | -## SppOption8+ +## SppOption8+(deprecated) 描述spp的配置参数。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.SppOption](js-apis-bluetoothManager.md#sppoption)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3339,10 +3401,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | type | [SppType](#spptype) | 是 | 是 | Spp链路类型。 | -## SppType8+ +## SppType8+(deprecated) 枚举,Spp链路类型。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.SppType](js-apis-bluetoothManager.md#spptype)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 值 | 说明 | @@ -3350,10 +3416,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | SPP_RFCOMM | 0 | 表示rfcomm链路类型。 | -## GattService +## GattService(deprecated) 描述service的接口参数定义。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.GattService](js-apis-bluetoothManager.md#gattservice)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3364,10 +3434,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | includeServices | Array<[GattService](#gattservice)> | 是 | 是 | 当前服务依赖的其它服务。 | -## BLECharacteristic +## BLECharacteristic(deprecated) 描述characteristic的接口参数定义 。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.BLECharacteristic](js-apis-bluetoothManager.md#blecharacteristic)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3378,10 +3452,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | descriptors | Array<[BLEDescriptor](#bledescriptor)> | 是 | 是 | 特定特征的描述符列表。 | -## BLEDescriptor +## BLEDescriptor(deprecated) 描述descriptor的接口参数定义 。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.BLEDescriptor](js-apis-bluetoothManager.md#bledescriptor)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3392,10 +3470,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | descriptorValue | ArrayBuffer | 是 | 是 | 描述符对应的二进制值。 | -## NotifyCharacteristic +## NotifyCharacteristic(deprecated) 描述server端特征值变化时发送的特征通知参数定义。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.NotifyCharacteristic](js-apis-bluetoothManager.md#notifycharacteristic)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3406,10 +3488,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | confirm | boolean | 是 | 是 | 如果是notification则对端回复确认设置为true,如果是indication则对端不需要回复确认设置为false。 | -## CharacteristicReadReq +## CharacteristicReadReq(deprecated) 描述server端订阅后收到的特征值读请求事件参数结构。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.CharacteristicReadRequest](js-apis-bluetoothManager.md#characteristicreadrequest)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3421,10 +3507,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | serviceUuid | string | 是 | 否 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | -## CharacteristicWriteReq +## CharacteristicWriteReq(deprecated) 描述server端订阅后收到的特征值写请求事件参数结构。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.CharacteristicWriteRequest](js-apis-bluetoothManager.md#characteristicwriterequest)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3437,10 +3527,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | serviceUuid | string | 是 | 否 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | -## DescriptorReadReq +## DescriptorReadReq(deprecated) 描述server端订阅后收到的描述符读请求事件参数结构。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.DescriptorReadRequest](js-apis-bluetoothManager.md#descriptorreadrequest)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3453,10 +3547,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | serviceUuid | string | 是 | 否 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | -## DescriptorWriteReq +## DescriptorWriteReq(deprecated) 描述server端订阅后收到的描述符写请求事件参数结构。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.DescriptorWriteRequest](js-apis-bluetoothManager.md#descriptorwriterequest)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3472,10 +3570,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | serviceUuid | string | 是 | 否 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | -## ServerResponse +## ServerResponse(deprecated) 描述server端回复client端读/写请求的响应参数结构。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.ServerResponse](js-apis-bluetoothManager.md#serverresponse)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3487,10 +3589,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | value | ArrayBuffer | 是 | 否 | 表示回复响应的二进制数据。 | -## BLEConnectChangedState +## BLEConnectChangedState(deprecated) 描述Gatt profile连接状态 。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.BLEConnectChangedState](js-apis-bluetoothManager.md#bleconnectchangedstate)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3499,10 +3605,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | state | [ProfileConnectionState](#profileconnectionstate) | 是 | 是 | 表示BLE连接状态的枚举。 | -## ProfileConnectionState +## ProfileConnectionState(deprecated) 枚举,蓝牙设备的profile连接状态。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.ProfileConnectionState](js-apis-bluetoothManager.md#profileconnectionstate)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 值 | 说明 | @@ -3513,10 +3623,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | STATE_DISCONNECTING | 3 | 表示profile正在断连。 | -## ScanFilter +## ScanFilter(deprecated) 扫描过滤参数。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.ScanFilter](js-apis-bluetoothManager.md#scanfilter)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3524,20 +3638,16 @@ let rssi = gattClient.getRssiValue().then((data) => { | deviceId | string | 是 | 是 | 表示过滤的BLE设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | | name | string | 是 | 是 | 表示过滤的BLE设备名。 | | serviceUuid | string | 是 | 是 | 表示过滤包含该UUID服务的设备,例如:00001888-0000-1000-8000-00805f9b34fb。 | -| serviceUuidMask9+ | string | 是 | 是 | 表示过滤包含该UUID服务掩码的设备,例如:FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF。 | -| serviceSolicitationUuid9+ | string | 是 | 是 | 表示过滤包含该UUID服务请求的设备,例如:00001888-0000-1000-8000-00805F9B34FB。 | -| serviceSolicitationUuidMask9+ | string | 是 | 是 | 表示过滤包含该UUID服务请求掩码的设备,例如:FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF。 | -| serviceData9+ | ArrayBuffer | 是 | 是 | 表示过滤包含该服务相关数据的设备,例如:[0x90,0x00,0xF1,0xF2]。 | -| serviceDataMask9+ | ArrayBuffer | 是 | 是 | 表示过滤包含该服务相关数据掩码的设备,例如:[0xFF,0xFF,0xFF,0xFF]。 | -| manufactureId9+ | number | 是 | 是 | 表示过滤包含该制造商ID的设备,例如:0x0006。 | -| manufactureData9+ | ArrayBuffer | 是 | 是 | 表示过滤包含该制造商相关数据的设备,例如:[0x1F,0x2F,0x3F]。 | -| manufactureDataMask9+ | ArrayBuffer | 是 | 是 | 表示过滤包含该制造商相关数据掩码的设备,例如:[0xFF,0xFF,0xFF]。 | -## ScanOptions +## ScanOptions(deprecated) 扫描的配置参数。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.ScanOptions](js-apis-bluetoothManager.md#scanoptions)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3547,10 +3657,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | matchMode | [MatchMode](#matchmode) | 是 | 是 | 表示硬件的过滤匹配模式,默认值为MATCH_MODE_AGGRESSIVE。 | -## ScanDuty +## ScanDuty(deprecated) 枚举,扫描模式。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.ScanDuty](js-apis-bluetoothManager.md#scanduty)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 值 | 说明 | @@ -3560,10 +3674,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | SCAN_MODE_LOW_LATENCY | 2 | 表示低延迟模式。 | -## MatchMode +## MatchMode(deprecated) 枚举,硬件过滤匹配模式。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.MatchMode](js-apis-bluetoothManager.md#matchmode)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 值 | 说明 | @@ -3572,10 +3690,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | MATCH_MODE_STICKY | 2 | 表示硬件上报扫描结果门限较高,更高的功率门限以及扫描到多次才会上报。 | -## ScanResult +## ScanResult(deprecated) 扫描结果上报数据。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.ScanResult](js-apis-bluetoothManager.md#scanresult)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3585,10 +3707,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | data | ArrayBuffer | 是 | 否 | 表示扫描到的设备发送的广播包。 | -## BluetoothState +## BluetoothState(deprecated) 枚举,蓝牙开关状态。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.BluetoothState](js-apis-bluetoothManager.md#bluetoothstate)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 值 | 说明 | @@ -3602,10 +3728,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | STATE_BLE_TURNING_OFF | 6 | 表示蓝牙正在关闭LE-only模式。 | -## AdvertiseSetting +## AdvertiseSetting(deprecated) 描述蓝牙低功耗设备发送广播的参数。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.AdvertiseSetting](js-apis-bluetoothManager.md#advertisesetting)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3615,10 +3745,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | connectable | boolean | 是 | 是 | 表示是否是可连接广播,默认值设置为true。 | -## AdvertiseData +## AdvertiseData(deprecated) 描述BLE广播数据包的内容。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.AdvertiseData](js-apis-bluetoothManager.md#advertisedata)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3628,10 +3762,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | serviceData | Array<[ServiceData](#servicedata)> | 是 | 是 | 表示要广播的服务数据列表。 | -## ManufactureData +## ManufactureData(deprecated) 描述BLE广播数据包的内容。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.ManufactureData](js-apis-bluetoothManager.md#manufacturedata)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3640,10 +3778,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | manufactureValue | ArrayBuffer | 是 | 是 | 表示制造商发送的制造商数据。 | -## ServiceData +## ServiceData(deprecated) 描述广播包中服务数据内容。 +> **说明:**
+> 从API version 7开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.ServiceData](js-apis-bluetoothManager.md#servicedata)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3652,10 +3794,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | serviceValue | ArrayBuffer | 是 | 是 | 表示服务数据。 | -## PinRequiredParam8+ +## PinRequiredParam8+(deprecated) 描述配对请求参数。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.PinRequiredParam](js-apis-bluetoothManager.md#pinrequiredparam)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3664,10 +3810,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | pinCode | string | 是 | 否 | 表示要配对的密钥。 | -## BondStateParam8+ +## BondStateParam8+(deprecated) 描述配对状态参数。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.BondStateParam](js-apis-bluetoothManager.md#bondstateparam)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3676,10 +3826,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | state | BondState | 是 | 否 | 表示配对设备的状态。 | -## StateChangeParam8+ +## StateChangeParam8+(deprecated) 描述profile状态改变参数。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.StateChangeParam](js-apis-bluetoothManager.md#statechangeparam)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3688,10 +3842,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | state | [ProfileConnectionState](#profileconnectionstate) | 是 | 否 | 表示蓝牙设备的profile连接状态。 | -## DeviceClass8+ +## DeviceClass8+(deprecated) 描述蓝牙设备的类别。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.DeviceClass](js-apis-bluetoothManager.md#deviceclass)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 类型 | 可读 | 可写 | 说明 | @@ -3702,10 +3860,14 @@ let rssi = gattClient.getRssiValue().then((data) => { -## MajorClass8+ +## MajorClass8+(deprecated) 枚举,蓝牙设备主要类别。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.MajorClass](js-apis-bluetoothManager.md#majorclass)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 值 | 说明 | @@ -3723,10 +3885,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | MAJOR_UNCATEGORIZED | 0x1F00 | 表示未分类设备。 | -## MajorMinorClass8+ +## MajorMinorClass8+(deprecated) 枚举,主要次要蓝牙设备类别。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.MajorMinorClass](js-apis-bluetoothManager.md#majorminorclass)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 值 | 说明 | @@ -3819,10 +3985,14 @@ let rssi = gattClient.getRssiValue().then((data) => { | HEALTH_PERSONAL_MOBILITY_DEVICE | 0x093C | 表示个人移动健康设备。 | -## PlayingState8+ +## PlayingState8+(deprecated) 枚举,蓝牙A2DP 播放状态。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.PlayingState](js-apis-bluetoothManager.md#playingstate)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 值 | 说明 | @@ -3831,15 +4001,17 @@ let rssi = gattClient.getRssiValue().then((data) => { | STATE_PLAYING | 0x0001 | 表示正在播放。 | -## ProfileId8+ +## ProfileId8+(deprecated) 蓝牙profile枚举,API9新增PROFILE_HID_HOST,PROFILE_PAN_NETWORK。 +> **说明:**
+> 从API version 8开始支持。 +> 从API version 9开始废弃,建议使用[bluetoothManager.ProfileId](js-apis-bluetoothManager.md#profileid)替代。 + **系统能力**:SystemCapability.Communication.Bluetooth.Core。 | 名称 | 值 | 说明 | | -------------------------------- | ------ | --------------- | | PROFILE_A2DP_SOURCE | 1 | 表示A2DP profile。 | -| PROFILE_HANDS_FREE_AUDIO_GATEWAY | 4 | 表示HFP profile。 | -| PROFILE_HID_HOST9+ | 6 | 表示HID profile。 | -| PROFILE_PAN_NETWORK9+ | 7 | 表示PAN profile。 | \ No newline at end of file +| PROFILE_HANDS_FREE_AUDIO_GATEWAY | 4 | 表示HFP profile。 | \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis/js-apis-bluetoothManager.md b/zh-cn/application-dev/reference/apis/js-apis-bluetoothManager.md new file mode 100644 index 0000000000000000000000000000000000000000..1386e7f32ab296447a7930bbfe583d1ac4afb3ec --- /dev/null +++ b/zh-cn/application-dev/reference/apis/js-apis-bluetoothManager.md @@ -0,0 +1,4491 @@ +# @ohos.bluetoothManager (蓝牙) + +蓝牙模块提供了基础的传统蓝牙能力以及BLE的扫描、广播等功能。 + +> **说明:** +> +> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 + + + +## 导入模块 + +```js +import bluetoothManager from '@ohos.bluetoothManager'; +``` + + +## bluetoothManager.enableBluetooth + +enableBluetooth(): void + +开启蓝牙。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + bluetoothManager.enableBluetooth(); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.disableBluetooth + +disableBluetooth(): void + +关闭蓝牙。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + bluetoothManager.disableBluetooth(); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.getLocalName + +getLocalName(): string + +获取蓝牙本地设备名称。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**返回值:** + +| 类型 | 说明 | +| ------ | --------- | +| string | 蓝牙本地设备名称。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let localName = bluetoothManager.getLocalName(); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.getState + +getState(): BluetoothState + +获取蓝牙开关状态。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**返回值:** + +| 类型 | 说明 | +| --------------------------------- | --------- | +| [BluetoothState](#bluetoothstate) | 表示蓝牙开关状态。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let state = bluetoothManager.getState(); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.getBtConnectionState + +getBtConnectionState(): ProfileConnectionState + +获取蓝牙设备的Profile连接状态。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------- | ------------------- | +| [ProfileConnectionState](#profileconnectionstate) | 表示蓝牙设备的Profile连接状态。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let connectionState = bluetoothManager.getBtConnectionState(); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.setLocalName + +setLocalName(name: string): void + +设置蓝牙本地设备名称。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ---- | ------ | ---- | --------------------- | +| name | string | 是 | 要设置的蓝牙名称,最大长度为248字节数。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + bluetoothManager.setLocalName('device_name'); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.pairDevice + +pairDevice(deviceId: string): void + +发起蓝牙配对。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------ | ---- | ----------------------------------- | +| deviceId | string | 是 | 表示配对的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + // 实际的地址可由扫描流程获取 + bluetoothManager.pairDevice("XX:XX:XX:XX:XX:XX"); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.getProfileConnectionState + +getProfileConnectionState(profileId: ProfileId): ProfileConnectionState + +获取profile的连接状态。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| --------- | --------- | ---- | ------------------------------------- | +| ProfileId | profileId | 是 | 表示profile的枚举值,例如:PROFILE_A2DP_SOURCE。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------------- | ------------------- | +| [ProfileConnectionState](#profileconnectionstate) | profile的连接状态。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900004 | Profile is not supported. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let result = bluetoothManager.getProfileConnectionState(bluetoothManager.ProfileId.PROFILE_A2DP_SOURCE); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.cancelPairedDevice + +cancelPairedDevice(deviceId: string): void + +删除配对的远程设备。 + +**系统接口**:此接口为系统接口。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------ | ---- | ------------------------------------- | +| deviceId | string | 是 | 表示要删除的远程设备的地址,例如:"XX:XX:XX:XX:XX:XX"。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + bluetoothManager.cancelPairedDevice("XX:XX:XX:XX:XX:XX"); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.getRemoteDeviceName + +getRemoteDeviceName(deviceId: string): string + +获取对端蓝牙设备的名称。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------ | ---- | --------------------------------- | +| deviceId | string | 是 | 表示远程设备的地址,例如:"XX:XX:XX:XX:XX:XX"。 | + +**返回值:** + +| 类型 | 说明 | +| ------ | ------------- | +| string | 以字符串格式返回设备名称。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let remoteDeviceName = bluetoothManager.getRemoteDeviceName("XX:XX:XX:XX:XX:XX"); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.getRemoteDeviceClass + +getRemoteDeviceClass(deviceId: string): DeviceClass + +获取对端蓝牙设备的类别。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------ | ---- | --------------------------------- | +| deviceId | string | 是 | 表示远程设备的地址,例如:"XX:XX:XX:XX:XX:XX"。 | + +**返回值:** + +| 类型 | 说明 | +| --------------------------- | -------- | +| [DeviceClass](#deviceclass) | 远程设备的类别。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let remoteDeviceClass = bluetoothManager.getRemoteDeviceClass("XX:XX:XX:XX:XX:XX"); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.getPairedDevices + +getPairedDevices(): Array<string> + +获取蓝牙配对列表。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**返回值:** + +| 类型 | 说明 | +| ------------------- | ------------- | +| Array<string> | 已配对蓝牙设备的地址列表。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let devices = bluetoothManager.getPairedDevices(); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.setBluetoothScanMode + +setBluetoothScanMode(mode: ScanMode, duration: number): void + +设置蓝牙扫描模式,可以被远端设备发现。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------- | ---- | ---------------------------- | +| mode | [ScanMode](#scanmode) | 是 | 蓝牙扫描模式。 | +| duration | number | 是 | 设备可被发现的持续时间,单位为毫秒;设置为0则持续可发现。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + // 设置为可连接可发现才可被远端设备扫描到,可以连接。 + bluetoothManager.setBluetoothScanMode(bluetoothManager.ScanMode.SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE, 100); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.getBluetoothScanMode + +getBluetoothScanMode(): ScanMode + +获取蓝牙扫描模式。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**返回值:** + +| 类型 | 说明 | +| --------------------- | ------- | +| [ScanMode](#scanmode) | 蓝牙扫描模式。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let scanMode = bluetoothManager.getBluetoothScanMode(); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.startBluetoothDiscovery + +startBluetoothDiscovery(): void + +开启蓝牙扫描,可以发现远端设备。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 和 ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +let deviceId; +function onReceiveEvent(data) { + deviceId = data; +} +try { + bluetoothManager.on('bluetoothDeviceFind', onReceiveEvent); + bluetoothManager.startBluetoothDiscovery(); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.stopBluetoothDiscovery + +stopBluetoothDiscovery(): void + +关闭蓝牙扫描。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + bluetoothManager.stopBluetoothDiscovery(); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.setDevicePairingConfirmation + +setDevicePairingConfirmation(device: string, accept: boolean): void + +设置设备配对请求确认。 + +**需要权限**:ohos.permission.MANAGE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------- | ---- | -------------------------------- | +| device | string | 是 | 表示远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | +| accept | boolean | 是 | 接受配对请求设置为true,否则设置为false。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js + +try { + // 订阅“pinRequired”配对请求事件,收到远端配对请求后设置配对确认 + function onReceivePinRequiredEvent(data) { // data为配对请求的入参,配对请求参数 + console.info('pin required = '+ JSON.stringify(data)); + bluetoothManager.setDevicePairingConfirmation(data.deviceId, true); + } + bluetoothManager.on("pinRequired", onReceivePinRequiredEvent); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.on('bluetoothDeviceFind') + +on(type: "bluetoothDeviceFind", callback: Callback<Array<string>>): void + +订阅蓝牙设备发现上报事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------- | ---- | -------------------------------------- | +| type | string | 是 | 填写"bluetoothDeviceFind"字符串,表示蓝牙设备发现事件。 | +| callback | Callback<Array<string>> | 是 | 表示回调函数的入参,发现的设备集合。回调函数由用户创建通过该接口注册。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900099 | Operation failed. | + +**示例:** + +```js +function onReceiveEvent(data) { // data为蓝牙设备地址集合 + console.info('bluetooth device find = '+ JSON.stringify(data)); +} +try { + bluetoothManager.on('bluetoothDeviceFind', onReceiveEvent); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.off('bluetoothDeviceFind') + +off(type: "bluetoothDeviceFind", callback?: Callback<Array<string>>): void + +取消订阅蓝牙设备发现上报事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"bluetoothDeviceFind"字符串,表示蓝牙设备发现事件。 | +| callback | Callback<Array<string>> | 否 | 表示取消订阅蓝牙设备发现事件上报。不填该参数则取消订阅该type对应的所有回调。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900099 | Operation failed. | + +**示例:** + +```js +function onReceiveEvent(data) { + console.info('bluetooth device find = '+ JSON.stringify(data)); +} +try { + bluetoothManager.on('bluetoothDeviceFind', onReceiveEvent); + bluetoothManager.off('bluetoothDeviceFind', onReceiveEvent); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.on('pinRequired') + +on(type: "pinRequired", callback: Callback<PinRequiredParam>): void + +订阅远端蓝牙设备的配对请求事件。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | -------------------------------- | +| type | string | 是 | 填写"pinRequired"字符串,表示配对请求事件。 | +| callback | Callback<[PinRequiredParam](#pinrequiredparam)> | 是 | 表示回调函数的入参,配对请求。回调函数由用户创建通过该接口注册。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900099 | Operation failed. | + +**示例:** + +```js +function onReceiveEvent(data) { // data为配对请求参数 + console.info('pin required = '+ JSON.stringify(data)); +} +try { + bluetoothManager.on('pinRequired', onReceiveEvent); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.off('pinRequired') + +off(type: "pinRequired", callback?: Callback<PinRequiredParam>): void + +取消订阅远端蓝牙设备的配对请求事件。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"pinRequired"字符串,表示配对请求事件。 | +| callback | Callback<[PinRequiredParam](#pinrequiredparam)> | 否 | 表示取消订阅蓝牙配对请求事件上报,入参为配对请求参数。不填该参数则取消订阅该type对应的所有回调。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900099 | Operation failed. | + +**示例:** + +```js +function onReceiveEvent(data) { + console.info('pin required = '+ JSON.stringify(data)); +} +try { + bluetoothManager.on('pinRequired', onReceiveEvent); + bluetoothManager.off('pinRequired', onReceiveEvent); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.on('bondStateChange') + +on(type: "bondStateChange", callback: Callback<BondStateParam>): void + +订阅蓝牙配对状态改变事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ------------------------------------ | +| type | string | 是 | 填写"bondStateChange"字符串,表示蓝牙配对状态改变事件。 | +| callback | Callback<[BondStateParam](#BondStateParam)> | 是 | 表示回调函数的入参,配对的状态。回调函数由用户创建通过该接口注册。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900099 | Operation failed. | + +**示例:** + +```js +function onReceiveEvent(data) { // data为回调函数入参,表示配对的状态 + console.info('pair state = '+ JSON.stringify(data)); +} +try { + bluetoothManager.on('bondStateChange', onReceiveEvent); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.off('bondStateChange') + +off(type: "bondStateChange", callback?: Callback<BondStateParam>): void + +取消订阅蓝牙配对状态改变事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"bondStateChange"字符串,表示蓝牙配对状态改变事件。 | +| callback | Callback<[BondStateParam](#BondStateParam)> | 否 | 表示取消订阅蓝牙配对状态改变事件上报。不填该参数则取消订阅该type对应的所有回调。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900099 | Operation failed. | + +**示例:** + +```js +function onReceiveEvent(data) { + console.info('bond state = '+ JSON.stringify(data)); +} +try { + bluetoothManager.on('bondStateChange', onReceiveEvent); + bluetoothManager.off('bondStateChange', onReceiveEvent); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.on('stateChange') + +on(type: "stateChange", callback: Callback<BluetoothState>): void + +订阅蓝牙连接状态改变事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | -------------------------------- | +| type | string | 是 | 填写"stateChange"字符串,表示蓝牙状态改变事件。 | +| callback | Callback<[BluetoothState](#bluetoothstate)> | 是 | 表示回调函数的入参,蓝牙状态。回调函数由用户创建通过该接口注册。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900099 | Operation failed. | + +**示例:** + +```js +function onReceiveEvent(data) { + console.info('bluetooth state = '+ JSON.stringify(data)); +} +try { + bluetoothManager.on('stateChange', onReceiveEvent); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.off('stateChange') + +off(type: "stateChange", callback?: Callback<BluetoothState>): void + +取消订阅蓝牙连接状态改变事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"stateChange"字符串,表示蓝牙状态改变事件。 | +| callback | Callback<[BluetoothState](#bluetoothstate)> | 否 | 表示取消订阅蓝牙状态改变事件上报。不填该参数则取消订阅该type对应的所有回调。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900099 | Operation failed. | + +**示例:** + +```js +function onReceiveEvent(data) { + console.info('bluetooth state = '+ JSON.stringify(data)); +} +try { + bluetoothManager.on('stateChange', onReceiveEvent); + bluetoothManager.off('stateChange', onReceiveEvent); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.sppListen + +sppListen(name: string, option: SppOption, callback: AsyncCallback<number>): void + +创建一个服务端监听Socket。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------- | ---- | ----------------------- | +| name | string | 是 | 服务的名称。 | +| option | [SppOption](#sppoption) | 是 | spp监听配置参数。 | +| callback | AsyncCallback<number> | 是 | 表示回调函数的入参,服务端Socket的id。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900004 | Profile is not supported. | +|2900099 | Operation failed. | + +**示例:** + +```js +let serverNumber = -1; +function serverSocket(code, number) { + console.log('bluetooth error code: ' + code.code); + if (code.code == 0) { + console.log('bluetooth serverSocket Number: ' + number); + serverNumber = number; + } +} + +let sppOption = {uuid: '00001810-0000-1000-8000-00805F9B34FB', secure: false, type: 0}; +try { + bluetoothManager.sppListen('server1', sppOption, serverSocket); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.sppAccept + +sppAccept(serverSocket: number, callback: AsyncCallback<number>): void + +服务端监听socket等待客户端连接。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------------ | --------------------------- | ---- | ----------------------- | +| serverSocket | number | 是 | 服务端socket的id。 | +| callback | AsyncCallback<number> | 是 | 表示回调函数的入参,客户端socket的id。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900004 | Profile is not supported. | +|2900099 | Operation failed. | + +**示例:** + +```js +let serverNumber = -1; +function serverSocket(code, number) { + console.log('bluetooth error code: ' + code.code); + if (code.code == 0) { + console.log('bluetooth serverSocket Number: ' + number); + serverNumber = number; + } +} +let clientNumber = -1; +function acceptClientSocket(code, number) { + console.log('bluetooth error code: ' + code.code); + if (code.code == 0) { + console.log('bluetooth clientSocket Number: ' + number); + // 获取的clientNumber用作服务端后续读/写操作socket的id。 + clientNumber = number; + } +} +try { + bluetoothManager.sppAccept(serverNumber, acceptClientSocket); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.sppConnect + +sppConnect(device: string, option: SppOption, callback: AsyncCallback<number>): void + +客户端向远端设备发起spp连接。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------- | ---- | ------------------------------ | +| device | string | 是 | 对端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | +| option | [SppOption](#sppoption) | 是 | spp客户端连接配置参数。 | +| callback | AsyncCallback<number> | 是 | 表示回调函数的入参,客户端socket的id。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900004 | Profile is not supported. | +|2900099 | Operation failed. | + +**示例:** + +```js + +let clientNumber = -1; +function clientSocket(code, number) { + if (code.code != 0) { + return; + } + console.log('bluetooth serverSocket Number: ' + number); + // 获取的clientNumber用作客户端后续读/写操作socket的id。 + clientNumber = number; +} +let sppOption = {uuid: '00001810-0000-1000-8000-00805F9B34FB', secure: false, type: 0}; +try { + bluetoothManager.sppConnect('XX:XX:XX:XX:XX:XX', sppOption, clientSocket); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.sppCloseServerSocket + +sppCloseServerSocket(socket: number): void + +关闭服务端监听Socket,入参socket由sppListen接口返回。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | --------------- | +| socket | number | 是 | 服务端监听socket的id。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900099 | Operation failed. | + +**示例:** + +```js +let serverNumber = -1; +function serverSocket(code, number) { + console.log('bluetooth error code: ' + code.code); + if (code.code == 0) { + console.log('bluetooth serverSocket Number: ' + number); + serverNumber = number; + } +} +try { + bluetoothManager.sppCloseServerSocket(serverNumber); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.sppCloseClientSocket + +sppCloseClientSocket(socket: number): void + +关闭客户端socket,入参socket由sppAccept或sppConnect接口获取。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------------- | +| 参数名 | 类型 | 必填 | 说明 | +| socket | number | 是 | 客户端socket的id。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900099 | Operation failed. | + +**示例:** + +```js +let clientNumber = -1; +function clientSocket(code, number) { + if (code.code != 0) { + return; + } + console.log('bluetooth serverSocket Number: ' + number); + // 获取的clientNumber用作客户端后续读/写操作socket的id。 + clientNumber = number; +} +try { + bluetoothManager.sppCloseClientSocket(clientNumber); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.sppWrite + +sppWrite(clientSocket: number, data: ArrayBuffer): void + +通过socket向远端发送数据,入参clientSocket由sppAccept或sppConnect接口获取 。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------------ | ----------- | ---- | ------------- | +| clientSocket | number | 是 | 客户端socket的id。 | +| data | ArrayBuffer | 是 | 写入的数据。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2901054 | IO error. | +|2900099 | Operation failed. | + +**示例:** + +```js +let clientNumber = -1; +function clientSocket(code, number) { + if (code.code != 0) { + return; + } + console.log('bluetooth serverSocket Number: ' + number); + // 获取的clientNumber用作客户端后续读/写操作socket的id。 + clientNumber = number; +} +let arrayBuffer = new ArrayBuffer(8); +let data = new Uint8Array(arrayBuffer); +data[0] = 123; +try { + bluetoothManager.sppWrite(clientNumber, arrayBuffer); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.on('sppRead') + +on(type: "sppRead", clientSocket: number, callback: Callback<ArrayBuffer>): void + +订阅spp读请求事件,入参clientSocket由sppAccept或sppConnect接口获取。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------------ | --------------------------- | ---- | -------------------------- | +| type | string | 是 | 填写"sppRead"字符串,表示spp读请求事件。 | +| clientSocket | number | 是 | 客户端socket的id。 | +| callback | Callback<ArrayBuffer> | 是 | 表示回调函数的入参,读取到的数据。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2901054 | IO error. | +|2900099 | Operation failed. | + +**示例:** + +```js +let clientNumber = -1; +function clientSocket(code, number) { + if (code.code != 0) { + return; + } + console.log('bluetooth serverSocket Number: ' + number); + // 获取的clientNumber用作客户端后续读/写操作socket的id。 + clientNumber = number; +} +function dataRead(dataBuffer) { + let data = new Uint8Array(dataBuffer); + console.log('bluetooth data is: ' + data[0]); +} +try { + bluetoothManager.on('sppRead', clientNumber, dataRead); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.off('sppRead') + +off(type: "sppRead", clientSocket: number, callback?: Callback<ArrayBuffer>): void + +取消订阅spp读请求事件,入参clientSocket由sppAccept或sppConnect接口获取。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------------ | --------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"sppRead"字符串,表示spp读请求事件。 | +| clientSocket | number | 是 | 客户端Socket的id。 | +| callback | Callback<ArrayBuffer> | 否 | 表示取消订阅spp读请求事件上报。不填该参数则取消订阅该type对应的所有回调。 | + +**示例:** + +```js +let clientNumber = -1; +function clientSocket(code, number) { + if (code.code != 0) { + return; + } + console.log('bluetooth serverSocket Number: ' + number); + // 获取的clientNumber用作客户端后续读/写操作socket的id。 + clientNumber = number; +} +try { + bluetoothManager.off('sppRead', clientNumber); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + +## bluetoothManager.getProfileInstance + +getProfileInstance(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile | HidHostProfile | PanProfile + +通过ProfileId,获取profile的对象实例,API9新增了HidHostProfile,PanProfile。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| --------- | --------- | ---- | ------------------------------------- | +| profileId | [ProfileId](#ProfileId) | 是 | 表示profile的枚举值,例如:PROFILE_A2DP_SOURCE。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------------------------ | ------------------------------------------------------------ | +| [A2dpSourceProfile](#a2dpsourceprofile)或 [HandsFreeAudioGatewayProfile](#handsfreeaudiogatewayprofile)或[HidHostProfile](#hidhostprofile)或[PanProfile](#panprofile) | 对应的profile的对象实例,当前支持A2dpSourceProfile/HandsFreeAudioGatewayProfile/HidHostProfile/PanProfile。 | + +**示例:** + +```js +try { + let hidHost = bluetoothManager.getProfileInstance(bluetoothManager.ProfileId.PROFILE_HID_HOST); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## bluetoothManager.BLE + +### bluetoothManager.BLE.createGattServer + +createGattServer(): GattServer + +创建一个可使用的GattServer实例。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**返回值:** + +| 类型 | 说明 | +| ------------------------- | ------------------------------------ | +| [GattServer](#gattserver) | server端类,使用server端方法之前需要创建该类的实例进行操作。 | + +**示例:** + +```js +let gattServer = bluetoothManager.BLE.createGattServer(); +``` + + +### bluetoothManager.BLE.createGattClientDevice + +createGattClientDevice(deviceId: string): GattClientDevice + +创建一个可使用的GattClientDevice实例。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------ | ---- | ------------------------------------ | +| deviceId | string | 是 | 对端设备地址, 例如:"XX:XX:XX:XX:XX:XX"。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------- | ------------------------------------ | +| [GattClientDevice](#gattclientdevice) | client端类,使用client端方法之前需要创建该类的实例进行操作。 | + +**示例:** + +```js +try { + let device = bluetoothManager.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### bluetoothManager.BLE.getConnectedBLEDevices + +getConnectedBLEDevices(): Array<string> + +获取和当前设备连接的BLE设备。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**返回值:** + +| 类型 | 说明 | +| ------------------- | ------------------- | +| Array<string> | 返回当前设备作为Server端时连接BLE设备地址集合。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let result = bluetoothManager.BLE.getConnectedBLEDevices(); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### bluetoothManager.BLE.startBLEScan + +startBLEScan(filters: Array<ScanFilter>, options?: ScanOptions): void + +发起BLE扫描流程。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH 和 ohos.permission.MANAGE_BLUETOOTH 和 ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | -------------------------------------- | ---- | ----------------------------------- | +| filters | Array<[ScanFilter](#scanfilter)> | 是 | 表示扫描结果过滤策略集合,如果不使用过滤的方式,该参数设置为null。 | +| options | [ScanOptions](#scanoptions) | 否 | 表示扫描的参数配置,可选参数。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +function onReceiveEvent(data) { + console.info('BLE scan device find result = '+ JSON.stringify(data)); +} +try { + bluetoothManager.BLE.on("BLEDeviceFind", onReceiveEvent); + bluetoothManager.BLE.startBLEScan( + [{ + deviceId:"XX:XX:XX:XX:XX:XX", + name:"test", + serviceUuid:"00001888-0000-1000-8000-00805f9b34fb" + }], + { + interval: 500, + dutyMode: bluetoothManager.ScanDuty.SCAN_MODE_LOW_POWER, + matchMode: bluetoothManager.MatchMode.MATCH_MODE_AGGRESSIVE, + } + ); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### bluetoothManager.BLE.stopBLEScan + +stopBLEScan(): void + +停止BLE扫描流程。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + bluetoothManager.BLE.stopBLEScan(); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### bluetoothManager.BLE.on('BLEDeviceFind') + +on(type: "BLEDeviceFind", callback: Callback<Array<ScanResult>>): void + +订阅BLE设备发现上报事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ----------------------------------- | +| type | string | 是 | 填写"BLEDeviceFind"字符串,表示BLE设备发现事件。 | +| callback | Callback<Array<[ScanResult](#scanresult)>> | 是 | 表示回调函数的入参,发现的设备集合。回调函数由用户创建通过该接口注册。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900099 | Operation failed. | + +**示例:** + +```js +function onReceiveEvent(data) { + console.info('bluetooth device find = '+ JSON.stringify(data)); +} +try { + bluetoothManager.BLE.on('BLEDeviceFind', onReceiveEvent); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### bluetoothManager.BLE.off('BLEDeviceFind') + +off(type: "BLEDeviceFind", callback?: Callback<Array<ScanResult>>): void + +取消订阅BLE设备发现上报事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"BLEDeviceFind"字符串,表示BLE设备发现事件。 | +| callback | Callback<Array<[ScanResult](#scanresult)>> | 否 | 表示取消订阅BLE设备发现事件上报。不填该参数则取消订阅该type对应的所有回调。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900099 | Operation failed. | + +**示例:** + +```js +function onReceiveEvent(data) { + console.info('bluetooth device find = '+ JSON.stringify(data)); +} +try { + bluetoothManager.BLE.on('BLEDeviceFind', onReceiveEvent); + bluetoothManager.BLE.off('BLEDeviceFind', onReceiveEvent); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## BaseProfile + +profile基类。 + + +### getConnectionDevices + +getConnectionDevices(): Array<string> + +获取已连接设备列表。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**返回值:** + +| 类型 | 说明 | +| ------------------- | ------------- | +| Array<string> | 返回已连接设备的地址列表。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900004 | Profile is not supported. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let a2dpSrc = bluetoothManager.getProfileInstance(bluetoothManager.ProfileId.PROFILE_A2DP_SOURCE) as bluetoothManager.A2dpSourceProfile; + let retArray = a2dpSrc.getConnectionDevices(); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + +### getDeviceState + +getDeviceState(device: string): ProfileConnectionState + +获取设备profile的连接状态。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------- | +| device | string | 是 | 远端设备地址。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------------- | ----------------------- | +| [ProfileConnectionState](#profileconnectionstate) | 返回profile的连接状态。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900004 | Profile is not supported. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let a2dpSrc = bluetoothManager.getProfileInstance(bluetoothManager.ProfileId.PROFILE_A2DP_SOURCE) as bluetoothManager.A2dpSourceProfile; + let ret = a2dpSrc.getDeviceState('XX:XX:XX:XX:XX:XX'); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + +## A2dpSourceProfile + +使用A2dpSourceProfile方法之前需要创建该类的实例进行操作,通过getProfile()方法构造此实例。 + + +### connect + +connect(device: string): void + +发起设备的A2dp服务连接请求。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------- | +| device | string | 是 | 远端设备地址。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900004 | Profile is not supported. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let a2dpSrc = bluetoothManager.getProfileInstance(bluetoothManager.ProfileId.PROFILE_A2DP_SOURCE) as bluetoothManager.A2dpSourceProfile; + a2dpSrc.connect('XX:XX:XX:XX:XX:XX'); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### disconnect + +disconnect(device: string): void + +断开设备的a2dp服务连接。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------- | +| device | string | 是 | 远端设备地址。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900004 | Profile is not supported. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let a2dpSrc = bluetoothManager.getProfileInstance(bluetoothManager.ProfileId.PROFILE_A2DP_SOURCE) as bluetoothManager.A2dpSourceProfile; + a2dpSrc.disconnect('XX:XX:XX:XX:XX:XX'); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### on('connectionStateChange') + +on(type: "connectionStateChange", callback: Callback<[StateChangeParam](#StateChangeParam)>): void + +订阅a2dp连接状态变化事件。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"connectionStateChange"字符串,表示连接状态变化事件。 | +| callback | Callback<[StateChangeParam](#StateChangeParam)> | 是 | 表示回调函数的入参。 | + +**返回值:** + +无 + +**示例:** + +```js +function onReceiveEvent(data) { + console.info('a2dp state = '+ JSON.stringify(data)); +} +let a2dpSrc = bluetoothManager.getProfileInstance(bluetoothManager.ProfileId.PROFILE_A2DP_SOURCE) as bluetoothManager.A2dpSourceProfile; +a2dpSrc.on('connectionStateChange', onReceiveEvent); +``` + + +### off('connectionStateChange') + +off(type: "connectionStateChange", callback?: Callback<[StateChangeParam](#StateChangeParam)>): void + +取消订阅a2dp连接状态变化事件。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"connectionStateChange"字符串,表示连接状态变化事件。 | +| callback | Callback<[StateChangeParam](#StateChangeParam)> | 否 | 表示回调函数的入参。 | + +**返回值:** + +无 + +**示例:** + +```js +function onReceiveEvent(data) { + console.info('a2dp state = '+ JSON.stringify(data)); +} +let a2dpSrc = bluetoothManager.getProfileInstance(bluetoothManager.ProfileId.PROFILE_A2DP_SOURCE) as bluetoothManager.A2dpSourceProfile; +a2dpSrc.on('connectionStateChange', onReceiveEvent); +a2dpSrc.off('connectionStateChange', onReceiveEvent); +``` + + +### getPlayingState + +getPlayingState(device: string): PlayingState + +获取设备的播放状态。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------- | +| device | string | 是 | 远端设备地址。 | + +**返回值:** + +| 类型 | 说明 | +| ----------------------------- | ---------- | +| [PlayingState](#PlayingState) | 远端设备的播放状态。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900004 | Profile is not supported. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let a2dpSrc = bluetoothManager.getProfileInstance(bluetoothManager.ProfileId.PROFILE_A2DP_SOURCE) as bluetoothManager.A2dpSourceProfile; + let state = a2dpSrc.getPlayingState('XX:XX:XX:XX:XX:XX'); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## HandsFreeAudioGatewayProfile + +使用HandsFreeAudioGatewayProfile方法之前需要创建该类的实例进行操作,通过getProfile()方法构造此实例。 + + +### connect + +connect(device: string): void + +连接设备的HFP服务。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------- | +| device | string | 是 | 远端设备地址。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900004 | Profile is not supported. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let hfpAg = bluetoothManager.getProfileInstance(bluetoothManager.ProfileId.PROFILE_HANDS_FREE_AUDIO_GATEWAY) as bluetoothManager.HandsFreeAudioGatewayProfile; + hfpAg.connect('XX:XX:XX:XX:XX:XX'); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### disconnect + +disconnect(device: string): void + +断开连接设备的HFP服务。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------- | +| device | string | 是 | 远端设备地址。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900004 | Profile is not supported. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let hfpAg = bluetoothManager.getProfileInstance(bluetoothManager.ProfileId.PROFILE_HANDS_FREE_AUDIO_GATEWAY) as bluetoothManager.HandsFreeAudioGatewayProfile; + hfpAg.disconnect('XX:XX:XX:XX:XX:XX'); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### on('connectionStateChange') + +on(type: "connectionStateChange", callback: Callback<[StateChangeParam](#StateChangeParam)>): void + +订阅HFP连接状态变化事件。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"connectionStateChange"字符串,表示连接状态变化事件。 | +| callback | Callback<[StateChangeParam](#StateChangeParam)> | 是 | 表示回调函数的入参。 | + +**示例:** + +```js +function onReceiveEvent(data) { + console.info('hfp state = '+ JSON.stringify(data)); +} +let hfpAg = bluetoothManager.getProfileInstance(bluetoothManager.ProfileId.PROFILE_HANDS_FREE_AUDIO_GATEWAY) as + bluetoothManager.HandsFreeAudioGatewayProfile; +hfpAg.on('connectionStateChange', onReceiveEvent); +``` + + +### off('connectionStateChange') + +off(type: "connectionStateChange", callback?: Callback<[StateChangeParam](#StateChangeParam)>): void + +取消订阅HFP连接状态变化事件。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"connectionStateChange"字符串,表示连接状态变化事件。 | +| callback | Callback<[StateChangeParam](#StateChangeParam)> | 否 | 表示回调函数的入参。 | + +**示例:** + +```js +function onReceiveEvent(data) { + console.info('hfp state = '+ JSON.stringify(data)); +} +let hfpAg = bluetoothManager.getProfileInstance(bluetoothManager.ProfileId.PROFILE_HANDS_FREE_AUDIO_GATEWAY) as + bluetoothManager.HandsFreeAudioGatewayProfile; +hfpAg.on('connectionStateChange', onReceiveEvent); +hfpAg.off('connectionStateChange', onReceiveEvent); +``` + + +## HidHostProfile + +使用HidHostProfile方法之前需要创建该类的实例进行操作,通过getProfile()方法构造此实例。 + + +### connect + +connect(device: string): void + +连接设备的HidHost服务。 + +**系统接口**:此接口为系统接口。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------- | +| device | string | 是 | 远端设备地址。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900004 | Profile is not supported. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let hidHostProfile = bluetoothManager.getProfileInst(bluetoothManager.ProfileId.PROFILE_HID_HOST) as bluetoothManager.HidHostProfile; + hidHostProfile.connect('XX:XX:XX:XX:XX:XX'); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### disconnect + +disconnect(device: string): void + +断开连接设备的HidHost服务。 + +**系统接口**:此接口为系统接口。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------- | +| device | string | 是 | 远端设备地址。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900004 | Profile is not supported. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let hidHostProfile = bluetoothManager.getProfileInst(bluetoothManager.ProfileId.PROFILE_HID_HOST) as bluetoothManager.HidHostProfile; + hidHostProfile.disconnect('XX:XX:XX:XX:XX:XX'); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### on('connectionStateChange') + +on(type: "connectionStateChange", callback: Callback<[StateChangeParam](#StateChangeParam)>): void + +订阅HidHost连接状态变化事件。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"connectionStateChange"字符串,表示连接状态变化事件。 | +| callback | Callback<[StateChangeParam](#StateChangeParam)> | 是 | 表示回调函数的入参。 | + +**示例:** + +```js +function onReceiveEvent(data) { + console.info('hidHost state = '+ JSON.stringify(data)); +} +let hidHost = bluetoothManager.getProfileInst(bluetoothManager.ProfileId.PROFILE_HID_HOST) as bluetoothManager.HidHostProfile; +hidHost.on('connectionStateChange', onReceiveEvent); +``` + + +### off('connectionStateChange') + +off(type: "connectionStateChange", callback?: Callback<[StateChangeParam](#StateChangeParam)>): void + +取消订阅HidHost连接状态变化事件。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------------------------- | ---- | --------------------------------------------------------- | +| type | string | 是 | 填写"connectionStateChange"字符串,表示连接状态变化事件。 | +| callback | Callback<[StateChangeParam](#StateChangeParam)> | 否 | 表示回调函数的入参。 | + +**示例:** + +```js +function onReceiveEvent(data) { + console.info('hidHost state = '+ JSON.stringify(data)); +} +let hidHost = bluetoothManager.getProfileInst(bluetoothManager.ProfileId.PROFILE_HID_HOST) as bluetoothManager.HidHostProfile; +hidHost.on('connectionStateChange', onReceiveEvent); +hidHost.off('connectionStateChange', onReceiveEvent); +``` + + +## PanProfile + +使用PanProfile方法之前需要创建该类的实例进行操作,通过getProfile()方法构造此实例。 + + +### disconnect + +disconnect(device: string): void + +断开连接设备的Pan服务。 + +**系统接口**:此接口为系统接口。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------- | +| device | string | 是 | 远端设备地址。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900004 | Profile is not supported. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let panProfile = bluetoothManager.getProfileInst(bluetoothManager.ProfileId.PROFILE_PAN_NETWORK) as bluetoothManager.PanProfile; + panProfile.disconnect('XX:XX:XX:XX:XX:XX'); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### on('connectionStateChange') + +on(type: "connectionStateChange", callback: Callback<[StateChangeParam](#StateChangeParam)>): void + +订阅Pan连接状态变化事件。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"connectionStateChange"字符串,表示连接状态变化事件。 | +| callback | Callback<[StateChangeParam](#StateChangeParam)> | 是 | 表示回调函数的入参。 | + +**示例:** + +```js +function onReceiveEvent(data) { + console.info('pan state = '+ JSON.stringify(data)); +} +let panProfile = bluetoothManager.getProfileInst(bluetoothManager.ProfileId.PROFILE_PAN_NETWORK) as bluetoothManager.PanProfile; +panProfile.on('connectionStateChange', onReceiveEvent); +``` + + +### off('connectionStateChange') + +off(type: "connectionStateChange", callback?: Callback<[StateChangeParam](#StateChangeParam)>): void + +取消订阅Pan连接状态变化事件。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------------------------- | ---- | --------------------------------------------------------- | +| type | string | 是 | 填写"connectionStateChange"字符串,表示连接状态变化事件。 | +| callback | Callback<[StateChangeParam](#StateChangeParam)> | 否 | 表示回调函数的入参。 | + +**示例:** + +```js +function onReceiveEvent(data) { + console.info('pan state = '+ JSON.stringify(data)); +} +let panProfile = bluetoothManager.getProfileInst(bluetoothManager.ProfileId.PROFILE_PAN_NETWORK) as bluetoothManager.PanProfile; +panProfile.on('connectionStateChange', onReceiveEvent); +panProfile.off('connectionStateChange', onReceiveEvent); +``` + + +### setTethering + +setTethering(enable: boolean): void + +设置网络共享状态。 + +**系统接口**:此接口为系统接口。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------- | +| value | boolean | 是 | 是否设置蓝牙共享。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900004 | Profile is not supported. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let panProfile = bluetoothManager.getProfileInst(bluetoothManager.ProfileId.PROFILE_PAN_NETWORK) as bluetoothManager.PanProfile; + panProfile.setTethering(true); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### isTetheringOn + +isTetheringOn(): boolean + +获取网络共享状态。 + +**系统接口**:此接口为系统接口。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**返回值:** + +| 类型 | 说明 | +| --------------------- | --------------------------------- | +| boolean | 网络共享开启返回true,网络共享关闭返回false。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900004 | Profile is not supported. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let panProfile = bluetoothManager.getProfileInst(bluetoothManager.ProfileId.PROFILE_PAN_NETWORK) as bluetoothManager.PanProfile; + let ret = panProfile.isTetheringOn(); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +## GattServer + +server端类,使用server端方法之前需要创建该类的实例进行操作,通过createGattServer()方法构造此实例。 + + +### startAdvertising + +startAdvertising(setting: AdvertiseSetting, advData: AdvertiseData, advResponse?: AdvertiseData): void + +开始发送BLE广播。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ----------- | ------------------------------------- | ---- | -------------- | +| setting | [AdvertiseSetting](#advertisesetting) | 是 | BLE广播的相关参数。 | +| advData | [AdvertiseData](#advertisedata) | 是 | BLE广播包内容。 | +| advResponse | [AdvertiseData](#advertisedata) | 否 | BLE回复扫描请求回复响应。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +let manufactureValueBuffer = new Uint8Array(4); +manufactureValueBuffer[0] = 1; +manufactureValueBuffer[1] = 2; +manufactureValueBuffer[2] = 3; +manufactureValueBuffer[3] = 4; + +let serviceValueBuffer = new Uint8Array(4); +serviceValueBuffer[0] = 4; +serviceValueBuffer[1] = 6; +serviceValueBuffer[2] = 7; +serviceValueBuffer[3] = 8; +console.info('manufactureValueBuffer = '+ JSON.stringify(manufactureValueBuffer)); +console.info('serviceValueBuffer = '+ JSON.stringify(serviceValueBuffer)); +let gattServer = bluetoothManager.BLE.createGattServer(); +try { + gattServer.startAdvertising({ + interval:150, + txPower:60, + connectable:true, + },{ + serviceUuids:["00001888-0000-1000-8000-00805f9b34fb"], + manufactureData:[{ + manufactureId:4567, + manufactureValue:manufactureValueBuffer.buffer + }], + serviceData:[{ + serviceUuid:"00001888-0000-1000-8000-00805f9b34fb", + serviceValue:serviceValueBuffer.buffer + }], + },{ + serviceUuids:["00001889-0000-1000-8000-00805f9b34fb"], + manufactureData:[{ + manufactureId:1789, + manufactureValue:manufactureValueBuffer.buffer + }], + serviceData:[{ + serviceUuid:"00001889-0000-1000-8000-00805f9b34fb", + serviceValue:serviceValueBuffer.buffer + }], + }); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### stopAdvertising + +stopAdvertising(): void + +停止发送BLE广播。 + +**需要权限**:ohos.permission.DISCOVER_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +let server = bluetoothManager.BLE.createGattServer(); +try { + server.stopAdvertising(); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### addService + +addService(service: GattService): void + +server端添加服务。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | --------------------------- | ---- | ------------------------ | +| service | [GattService](#gattservice) | 是 | 服务端的service数据。BLE广播的相关参数 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +// 创建descriptors +let descriptors = []; +let arrayBuffer = new ArrayBuffer(8); +let descV = new Uint8Array(arrayBuffer); +descV[0] = 11; +let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', + characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', + descriptorUuid: '00002902-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer}; +descriptors[0] = descriptor; + +// 创建characteristics +let characteristics = []; +let arrayBufferC = new ArrayBuffer(8); +let cccV = new Uint8Array(arrayBufferC); +cccV[0] = 1; +let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', + characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', characteristicValue: arrayBufferC, descriptors:descriptors}; +let characteristicN = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', + characteristicUuid: '00001821-0000-1000-8000-00805F9B34FB', characteristicValue: arrayBufferC, descriptors:descriptors}; +characteristics[0] = characteristic; + +// 创建gattService +let gattService = {serviceUuid:'00001810-0000-1000-8000-00805F9B34FB', isPrimary: true, characteristics:characteristics, includeServices:[]}; + +let gattServer = bluetoothManager.BLE.createGattServer(); +try { + gattServer.addService(gattService); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### removeService + +removeService(serviceUuid: string): void + +删除已添加的服务。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ----------- | ------ | ---- | ---------------------------------------- | +| serviceUuid | string | 是 | service的UUID,例如“00001810-0000-1000-8000-00805F9B34FB”。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900004 | Profile is not supported. | +|2900099 | Operation failed. | + +**示例:** + +```js +let server = bluetoothManager.BLE.createGattServer(); +try { + server.removeService('00001810-0000-1000-8000-00805F9B34FB'); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### close + +close(): void + +关闭服务端功能,去注册server在协议栈的注册,调用该接口后[GattServer](#gattserver)实例将不能再使用。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +let server = bluetoothManager.BLE.createGattServer(); +try { + server.close(); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### notifyCharacteristicChanged + +notifyCharacteristicChanged(deviceId: string, notifyCharacteristic: NotifyCharacteristic): void + +server端特征值发生变化时,主动通知已连接的client设备。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------------------- | ---------------------------------------- | ---- | --------------------------------------- | +| deviceId | string | 是 | 接收通知的client端设备地址,例如“XX:XX:XX:XX:XX:XX”。 | +| notifyCharacteristic | [NotifyCharacteristic](#notifycharacteristic) | 是 | 通知的特征值数据。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +// 创建descriptors +let descriptors = []; +let arrayBuffer = new ArrayBuffer(8); +let descV = new Uint8Array(arrayBuffer); +descV[0] = 11; +let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', + characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', + descriptorUuid: '00002902-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer}; +descriptors[0] = descriptor; +let arrayBufferC = new ArrayBuffer(8); +let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', + characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', characteristicValue: arrayBufferC, descriptors:descriptors}; +let notifyCharacteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', + characteristicUuid: '00001821-0000-1000-8000-00805F9B34FB', characteristicValue: characteristic.characteristicValue, confirm: false}; +let server = bluetoothManager.BLE.createGattServer(); +try { + server.notifyCharacteristicChanged('XX:XX:XX:XX:XX:XX', notifyCharacteristic); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### sendResponse + +sendResponse(serverResponse: ServerResponse): void + +server端回复client端的读写请求。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------------- | --------------------------------- | ---- | --------------- | +| serverResponse | [ServerResponse](#serverresponse) | 是 | server端回复的响应数据。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +/* send response */ +let arrayBufferCCC = new ArrayBuffer(8); +let cccValue = new Uint8Array(arrayBufferCCC); +cccValue[0] = 1123; +let serverResponse = { + "deviceId": "XX:XX:XX:XX:XX:XX", + "transId": 0, + "status": 0, + "offset": 0, + "value": arrayBufferCCC, +}; + +let gattServer = bluetoothManager.BLE.createGattServer(); +try { + gattServer.sendResponse(serverResponse); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### on('characteristicRead') + +on(type: "characteristicRead", callback: Callback<CharacteristicReadRequest>): void + +server端订阅特征值读请求事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ------------------------------------- | +| type | string | 是 | 填写"characteristicRead"字符串,表示特征值读请求事件。 | +| callback | Callback<[CharacteristicReadRequest](#characteristicreadrequest)> | 是 | 表示回调函数的入参,client端发送的读请求数据。 | + +**示例:** + +```js +let arrayBufferCCC = new ArrayBuffer(8); +let cccValue = new Uint8Array(arrayBufferCCC); +cccValue[0] = 1123; +function ReadCharacteristicReq(CharacteristicReadRequest) { + let deviceId = CharacteristicReadRequest.deviceId; + let transId = CharacteristicReadRequest.transId; + let offset = CharacteristicReadRequest.offset; + let characteristicUuid = CharacteristicReadRequest.characteristicUuid; + + let serverResponse = {deviceId: deviceId, transId: transId, status: 0, offset: offset, value:arrayBufferCCC}; + + try { + gattServer.sendResponse(serverResponse); + } catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); + } +} + +let gattServer = bluetoothManager.BLE.createGattServer(); +gattServer.on("characteristicRead", ReadCharacteristicReq); +``` + + +### off('characteristicRead') + +off(type: "characteristicRead", callback?: Callback<CharacteristicReadRequest>): void + +server端取消订阅特征值读请求事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"characteristicRead"字符串,表示特征值读请求事件。 | +| callback | Callback<[CharacteristicReadRequest](#characteristicreadrequest)> | 否 | 表示取消订阅特征值读请求事件上报。不填该参数则取消订阅该type对应的所有回调。 | + +**示例:** + +```js +let gattServer = bluetoothManager.BLE.createGattServer(); +gattServer.off("characteristicRead"); +``` + + +### on('characteristicWrite') + +on(type: "characteristicWrite", callback: Callback<CharacteristicWriteRequest>): void + +server端订阅特征值写请求事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | -------------------------------------- | +| type | string | 是 | 填写"characteristicWrite"字符串,表示特征值写请求事件。 | +| callback | Callback<[CharacteristicWriteRequest](#characteristicwriterequest)> | 是 | 表示回调函数的入参,client端发送的写请求数据。 | + +**示例:** + +```js +let arrayBufferCCC = new ArrayBuffer(8); +let cccValue = new Uint8Array(arrayBufferCCC); +function WriteCharacteristicReq(CharacteristicWriteRequest) { + let deviceId = CharacteristicWriteRequest.deviceId; + let transId = CharacteristicWriteRequest.transId; + let offset = CharacteristicWriteRequest.offset; + let isPrep = CharacteristicWriteRequest.isPrep; + let needRsp = CharacteristicWriteRequest.needRsp; + let value = new Uint8Array(CharacteristicWriteRequest.value); + let characteristicUuid = CharacteristicWriteRequest.characteristicUuid; + + cccValue[0] = value[0]; + let serverResponse = {deviceId: deviceId, transId: transId, status: 0, offset: offset, value:arrayBufferCCC}; + + try { + gattServer.sendResponse(serverResponse); + } catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); + } +} + +let gattServer = bluetoothManager.BLE.createGattServer(); +gattServer.on("characteristicWrite", WriteCharacteristicReq); +``` + + +### off('characteristicWrite') + +off(type: "characteristicWrite", callback?: Callback<CharacteristicWriteRequest>): void + +server端取消订阅特征值写请求事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"characteristicWrite"字符串,表示特征值写请求事件。 | +| callback | Callback<[CharacteristicWriteRequest](#characteristicwriterequest)> | 否 | 表示取消订阅特征值写请求事件上报。不填该参数则取消订阅该type对应的所有回调。 | + +**示例:** + +```js +let gattServer = bluetoothManager.BLE.createGattServer(); +gattServer.off("characteristicWrite"); +``` + + +### on('descriptorRead') + +on(type: "descriptorRead", callback: Callback<DescriptorReadRequest>): void + +server端订阅描述符读请求事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------------------------------- | +| type | string | 是 | 填写"descriptorRead"字符串,表示描述符读请求事件。 | +| callback | Callback<[DescriptorReadRequest](#descriptorreadrequest)> | 是 | 表示回调函数的入参,client端发送的读请求数据。 | + +**示例:** + +```js +let arrayBufferDesc = new ArrayBuffer(8); +let descValue = new Uint8Array(arrayBufferDesc); +descValue[0] = 1101; +function ReadDescriptorReq(DescriptorReadRequest) { + let deviceId = DescriptorReadRequest.deviceId; + let transId = DescriptorReadRequest.transId; + let offset = DescriptorReadRequest.offset; + let descriptorUuid = DescriptorReadRequest.descriptorUuid; + + let serverResponse = {deviceId: deviceId, transId: transId, status: 0, offset: offset, value:arrayBufferDesc}; + + try { + gattServer.sendResponse(serverResponse); + } catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); + } +} + +let gattServer = bluetoothManager.BLE.createGattServer(); +gattServer.on("descriptorRead", ReadDescriptorReq); +``` + + +### off('descriptorRead') + +off(type: "descriptorRead", callback?: Callback<DescriptorReadRequest>): void + +server端取消订阅描述符读请求事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"descriptorRead"字符串,表示描述符读请求事件。 | +| callback | Callback<[DescriptorReadRequest](#descriptorreadrequest)> | 否 | 表示取消订阅描述符读请求事件上报。不填该参数则取消订阅该type对应的所有回调。 | + +**示例:** + +```js +let gattServer = bluetoothManager.BLE.createGattServer(); +gattServer.off("descriptorRead"); +``` + + +### on('descriptorWrite') + +on(type: "descriptorWrite", callback: Callback<DescriptorWriteRequest>): void + +server端订阅描述符写请求事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------- | +| type | string | 是 | 填写"descriptorWrite"字符串,表示描述符写请求事件。 | +| callback | Callback<[DescriptorWriteRequest](#descriptorwriterequest)> | 是 | 表示回调函数的入参,client端发送的写请求数据。 | + +**示例:** + +```js +let arrayBufferDesc = new ArrayBuffer(8); +let descValue = new Uint8Array(arrayBufferDesc); +function WriteDescriptorReq(DescriptorWriteRequest) { + let deviceId = DescriptorWriteRequest.deviceId; + let transId = DescriptorWriteRequest.transId; + let offset = DescriptorWriteRequest.offset; + let isPrep = DescriptorWriteRequest.isPrep; + let needRsp = DescriptorWriteRequest.needRsp; + let value = new Uint8Array(DescriptorWriteRequest.value); + let descriptorUuid = DescriptorWriteRequest.descriptorUuid; + + descValue[0] = value[0]; + let serverResponse = {deviceId: deviceId, transId: transId, status: 0, offset: offset, value:arrayBufferDesc}; + + try { + gattServer.sendResponse(serverResponse); + } catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); + } +} + +let gattServer = bluetoothManager.BLE.createGattServer(); +gattServer.on("descriptorRead", WriteDescriptorReq); +``` + + +### off('descriptorWrite') + +off(type: "descriptorWrite", callback?: Callback<DescriptorWriteRequest>): void + +server端取消订阅描述符写请求事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"descriptorWrite"字符串,表示描述符写请求事件。 | +| callback | Callback<[DescriptorWriteRequest](#descriptorwriterequest)> | 否 | 表示取消订阅描述符写请求事件上报。不填该参数则取消订阅该type对应的所有回调。 | + +**示例:** + +```js +let gattServer = bluetoothManager.BLE.createGattServer(); +gattServer.off("descriptorWrite"); +``` + + +### on('connectStateChange') + +on(type: "connectStateChange", callback: Callback<BLEConnectChangedState>): void + +server端订阅BLE连接状态变化事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"connectStateChange"字符串,表示BLE连接状态变化事件。 | +| callback | Callback<[BLEConnectChangedState](#bleconnectchangedstate)> | 是 | 表示回调函数的入参,连接状态。 | + +**示例:** + +```js +function Connected(BLEConnectChangedState) { + let deviceId = BLEConnectChangedState.deviceId; + let status = BLEConnectChangedState.state; +} + +let gattServer = bluetoothManager.BLE.createGattServer(); +gattServer.on("connectStateChange", Connected); +``` + + +### off('connectStateChange') + +off(type: "connectStateChange", callback?: Callback<BLEConnectChangedState>): void + +server端取消订阅BLE连接状态变化事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"connectStateChange"字符串,表示BLE连接状态变化事件。 | +| callback | Callback<[BLEConnectChangedState](#bleconnectchangedstate)> | 否 | 表示取消订阅BLE连接状态变化事件。不填该参数则取消订阅该type对应的所有回调。 | + +**示例:** + +```js +let gattServer = bluetoothManager.BLE.createGattServer(); +gattServer.off("connectStateChange"); +``` + + +## GattClientDevice + +client端类,使用client端方法之前需要创建该类的实例进行操作,通过createGattClientDevice(deviceId: string)方法构造此实例。 + + +### connect + +connect(): void + +client端发起连接远端蓝牙低功耗设备。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let device = bluetoothManager.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); + device.connect(); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### disconnect + +disconnect(): void + +client端断开与远端蓝牙低功耗设备的连接。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let device = bluetoothManager.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); + device.disconnect(); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### close + +close(): void + +关闭客户端功能,注销client在协议栈的注册,调用该接口后[GattClientDevice](#gattclientdevice)实例将不能再使用。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900003 | Bluetooth switch is off. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let device = bluetoothManager.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); + device.close(); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + + + +### getServices + +getServices(callback: AsyncCallback<Array<GattService>>): void + +client端获取蓝牙低功耗设备的所有服务,即服务发现 。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ------------------------ | +| callback | AsyncCallback<Array<[GattService](#gattservice)>> | 是 | client进行服务发现,通过注册回调函数获取。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900099 | Operation failed. | + +**示例:** + +```js +// callkback 模式 +function getServices(code, gattServices) { + if (code.code == 0) { + let services = gattServices; + console.log('bluetooth code is ' + code.code); + console.log("bluetooth services size is ", services.length); + + for (let i = 0; i < services.length; i++) { + console.log('bluetooth serviceUuid is ' + services[i].serviceUuid); + } + } +} + +try { + let device = bluetoothManager.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); + device.connect(); + device.getServices(getServices); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### getServices + +getServices(): Promise<Array<GattService>> + +client端获取蓝牙低功耗设备的所有服务,即服务发现。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------- | --------------------------- | +| Promise<Array<[GattService](#gattservice)>> | client进行服务发现,通过promise形式获取。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900099 | Operation failed. | + +**示例:** + +```js +// Promise 模式 +try { + let device = bluetoothManager.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); + device.connect(); + device.getServices().then(result => { + console.info("getServices successfully:" + JSON.stringify(result)); + }); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### readCharacteristicValue + +readCharacteristicValue(characteristic: BLECharacteristic, callback: AsyncCallback<BLECharacteristic>): void + +client端读取蓝牙低功耗设备特定服务的特征值。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------------- | ---------------------------------------- | ---- | ----------------------- | +| characteristic | [BLECharacteristic](#blecharacteristic) | 是 | 待读取的特征值。 | +| callback | AsyncCallback<[BLECharacteristic](#blecharacteristic)> | 是 | client读取特征值,通过注册回调函数获取。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2901000 | Read forbidden。 | +|2900099 | Operation failed. | + +**示例:** + +```js +function readCcc(code, BLECharacteristic) { + if (code.code != 0) { + return; + } + console.log('bluetooth characteristic uuid: ' + BLECharacteristic.characteristicUuid); + let value = new Uint8Array(BLECharacteristic.characteristicValue); + console.log('bluetooth characteristic value: ' + value[0] +','+ value[1]+','+ value[2]+','+ value[3]); +} + +let descriptors = []; +let bufferDesc = new ArrayBuffer(8); +let descV = new Uint8Array(bufferDesc); +descV[0] = 11; +let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', +characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', +descriptorUuid: '00002903-0000-1000-8000-00805F9B34FB', descriptorValue: bufferDesc}; +descriptors[0] = descriptor; + +let bufferCCC = new ArrayBuffer(8); +let cccV = new Uint8Array(bufferCCC); +cccV[0] = 1; +let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', +characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', +characteristicValue: bufferCCC, descriptors:descriptors}; + +try { + let device = bluetoothManager.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); + device.readCharacteristicValue(characteristic, readCcc); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### readCharacteristicValue + +readCharacteristicValue(characteristic: BLECharacteristic): Promise<BLECharacteristic> + +client端读取蓝牙低功耗设备特定服务的特征值。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------------- | --------------------------------------- | ---- | -------- | +| characteristic | [BLECharacteristic](#blecharacteristic) | 是 | 待读取的特征值。 | + +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------- | -------------------------- | +| Promise<[BLECharacteristic](#blecharacteristic)> | client读取特征值,通过promise形式获取。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2901000 | Read forbidden。 | +|2900099 | Operation failed. | + +**示例:** + +```js +let descriptors = []; +let bufferDesc = new ArrayBuffer(8); +let descV = new Uint8Array(bufferDesc); +descV[0] = 11; +let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', +characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', +descriptorUuid: '00002903-0000-1000-8000-00805F9B34FB', descriptorValue: bufferDesc}; +descriptors[0] = descriptor; + +let bufferCCC = new ArrayBuffer(8); +let cccV = new Uint8Array(bufferCCC); +cccV[0] = 1; +let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', +characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', +characteristicValue: bufferCCC, descriptors:descriptors}; + +try { + let device = bluetoothManager.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); + device.readCharacteristicValue(characteristic); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### readDescriptorValue + +readDescriptorValue(descriptor: BLEDescriptor, callback: AsyncCallback<BLEDescriptor>): void + +client端读取蓝牙低功耗设备特定的特征包含的描述符。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ---------- | ---------------------------------------- | ---- | ----------------------- | +| descriptor | [BLEDescriptor](#bledescriptor) | 是 | 待读取的描述符。 | +| callback | AsyncCallback<[BLEDescriptor](#bledescriptor)> | 是 | client读取描述符,通过注册回调函数获取。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2901000 | Read forbidden。 | +|2900099 | Operation failed. | + +**示例:** + +```js +function readDesc(code, BLEDescriptor) { + if (code.code != 0) { + return; + } + console.log('bluetooth descriptor uuid: ' + BLEDescriptor.descriptorUuid); + let value = new Uint8Array(BLEDescriptor.descriptorValue); + console.log('bluetooth descriptor value: ' + value[0] +','+ value[1]+','+ value[2]+','+ value[3]); +} + +let bufferDesc = new ArrayBuffer(8); +let descV = new Uint8Array(bufferDesc); +descV[0] = 11; +let descriptor = { + serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', + characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', + descriptorUuid: '00002903-0000-1000-8000-00805F9B34FB', + descriptorValue: bufferDesc +}; +try { + let device = bluetoothManager.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); + device.readDescriptorValue(descriptor, readDesc); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### readDescriptorValue + +readDescriptorValue(descriptor: BLEDescriptor): Promise<BLEDescriptor> + +client端读取蓝牙低功耗设备特定的特征包含的描述符。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ---------- | ------------------------------- | ---- | -------- | +| descriptor | [BLEDescriptor](#bledescriptor) | 是 | 待读取的描述符。 | + +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------- | -------------------------- | +| Promise<[BLEDescriptor](#bledescriptor)> | client读取描述符,通过promise形式获取。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2901000 | Read forbidden。 | +|2900099 | Operation failed. | + +**示例:** + +```js +let bufferDesc = new ArrayBuffer(8); +let descV = new Uint8Array(bufferDesc); +descV[0] = 11; +let descriptor = { + serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', + characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', + descriptorUuid: '00002903-0000-1000-8000-00805F9B34FB', + descriptorValue: bufferDesc +}; +try { + let device = bluetoothManager.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); + device.readDescriptorValue(descriptor); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### writeCharacteristicValue + +writeCharacteristicValue(characteristic: BLECharacteristic): void + +client端向低功耗蓝牙设备写入特定的特征值。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------------- | --------------------------------------- | ---- | ------------------- | +| characteristic | [BLECharacteristic](#blecharacteristic) | 是 | 蓝牙设备特征对应的二进制值及其它参数。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2901001 | Write forbidden。 | +|2900099 | Operation failed. | + +**示例:** + +```js +let descriptors = []; +let bufferDesc = new ArrayBuffer(8); +let descV = new Uint8Array(bufferDesc); +descV[0] = 11; +let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', + characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', + descriptorUuid: '00002903-0000-1000-8000-00805F9B34FB', descriptorValue: bufferDesc}; +descriptors[0] = descriptor; + +let bufferCCC = new ArrayBuffer(8); +let cccV = new Uint8Array(bufferCCC); +cccV[0] = 1; +let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', + characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', + characteristicValue: bufferCCC, descriptors:descriptors}; +try { + let device = bluetoothManager.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); + device.writeCharacteristicValue(characteristic); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### writeDescriptorValue + +writeDescriptorValue(descriptor: BLEDescriptor): void + +client端向低功耗蓝牙设备特定的描述符写入二进制数据。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ---------- | ------------------------------- | ---- | ------------------ | +| descriptor | [BLEDescriptor](#bledescriptor) | 是 | 蓝牙设备描述符的二进制值及其它参数。 | +| boolean | 写描述符操作成功返回true,操作失败返回false。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2901001 | Write forbidden。 | +|2900099 | Operation failed. | + +**示例:** + +```js +let bufferDesc = new ArrayBuffer(8); +let descV = new Uint8Array(bufferDesc); +descV[0] = 22; +let descriptor = { + serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', + characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', + descriptorUuid: '00002903-0000-1000-8000-00805F9B34FB', + descriptorValue: bufferDesc +}; +try { + let device = bluetoothManager.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); + device.writeDescriptorValue(descriptor); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### setBLEMtuSize + +setBLEMtuSize(mtu: number): void + +client协商远端蓝牙低功耗设备的最大传输单元(Maximum Transmission Unit, MTU),调用[connect](#connect)接口连接成功后才能使用。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ---- | ------ | ---- | -------------- | +| mtu | number | 是 | 设置范围为22~512字节。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900099 | Operation failed. | + +**示例:** + +```js +try { + let device = bluetoothManager.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); + device.setBLEMtuSize(128); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### setNotifyCharacteristicChanged + +setNotifyCharacteristicChanged(characteristic: BLECharacteristic, enable: boolean): void + +向服务端发送设置通知此特征值请求。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------------- | --------------------------------------- | ---- | ----------------------------- | +| characteristic | [BLECharacteristic](#blecharacteristic) | 是 | 蓝牙低功耗特征。 | +| enable | boolean | 是 | 启用接收notify设置为true,否则设置为false。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900099 | Operation failed. | + +**示例:** + +```js +// 创建descriptors +let descriptors = []; +let arrayBuffer = new ArrayBuffer(8); +let descV = new Uint8Array(arrayBuffer); +descV[0] = 11; +let descriptor = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', + characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', + descriptorUuid: '00002902-0000-1000-8000-00805F9B34FB', descriptorValue: arrayBuffer}; +descriptors[0] = descriptor; +let arrayBufferC = new ArrayBuffer(8); +let characteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', + characteristicUuid: '00001820-0000-1000-8000-00805F9B34FB', characteristicValue: arrayBufferC, descriptors:descriptors}; +try { + let device = bluetoothManager.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); + device.setNotifyCharacteristicChanged(characteristic, false); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} + +``` + + +### on('BLECharacteristicChange') + +on(type: "BLECharacteristicChange", callback: Callback<BLECharacteristic>): void + +订阅蓝牙低功耗设备的特征值变化事件。需要先调用setNotifyCharacteristicChanged接口才能接收server端的通知。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"BLECharacteristicChange"字符串,表示特征值变化事件。 | +| callback | Callback<[BLECharacteristic](#blecharacteristic)> | 是 | 表示蓝牙低功耗设备的特征值变化事件的回调函数。 | + +**示例:** + +```js +function CharacteristicChange(CharacteristicChangeReq) { + let serviceUuid = CharacteristicChangeReq.serviceUuid; + let characteristicUuid = CharacteristicChangeReq.characteristicUuid; + let value = new Uint8Array(CharacteristicChangeReq.characteristicValue); +} +try { + let device = bluetoothManager.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); + device.on('BLECharacteristicChange', CharacteristicChange); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### off('BLECharacteristicChange') + +off(type: "BLECharacteristicChange", callback?: Callback<BLECharacteristic>): void + +取消订阅蓝牙低功耗设备的特征值变化事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"BLECharacteristicChange"字符串,表示特征值变化事件。 | +| callback | Callback<[BLECharacteristic](#blecharacteristic)> | 否 | 表示取消订阅蓝牙低功耗设备的特征值变化事件。不填该参数则取消订阅该type对应的所有回调。 | + +**示例:** + +```js +try { + let device = bluetoothManager.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); + device.off('BLECharacteristicChange'); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### on('BLEConnectionStateChange') + +on(type: "BLEConnectionStateChange", callback: Callback<BLEConnectChangedState>): void + +client端订阅蓝牙低功耗设备的连接状态变化事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"BLEConnectionStateChange"字符串,表示连接状态变化事件。 | +| callback | Callback<[BLEConnectChangedState](#bleconnectchangedstate)> | 是 | 表示连接状态,已连接或断开。 | + +**示例:** + +```js +function ConnectStateChanged(state) { + console.log('bluetooth connect state changed'); + let connectState = state.state; +} +try { + let device = bluetoothManager.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); + device.on('BLEConnectionStateChange', ConnectStateChanged); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### off('BLEConnectionStateChange') + +off(type: "BLEConnectionStateChange", callback?: Callback<BLEConnectChangedState>): void + +取消订阅蓝牙低功耗设备的连接状态变化事件。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------------------------------------- | +| type | string | 是 | 填写"BLEConnectionStateChange"字符串,表示连接状态变化事件。 | +| callback | Callback<[BLEConnectChangedState](#bleconnectchangedstate)> | 否 | 表示取消订阅蓝牙低功耗设备的连接状态变化事件。不填该参数则取消订阅该type对应的所有回调。 | + +**示例:** + +```js +try { + let device = bluetoothManager.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX'); + device.off('BLEConnectionStateChange'); +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### getDeviceName + +getDeviceName(callback: AsyncCallback<string>): void + +client获取远端蓝牙低功耗设备名。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------- | ---- | ------------------------------- | +| callback | AsyncCallback<string> | 是 | client获取对端server设备名,通过注册回调函数获取。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900099 | Operation failed. | + +**示例:** + +```js +// callback +try { + let gattClient = bluetoothManager.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX"); + gattClient.connect(); + let deviceName = gattClient.getDeviceName((err, data)=> { + console.info('device name err ' + JSON.stringify(err)); + console.info('device name' + JSON.stringify(data)); + }) +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### getDeviceName + +getDeviceName(): Promise<string> + +client获取远端蓝牙低功耗设备名。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**返回值:** + +| 类型 | 说明 | +| --------------------- | ---------------------------------- | +| Promise<string> | client获取对端server设备名,通过promise形式获取。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900001 | Service stopped. | +|2900099 | Operation failed. | + +**示例:** + +```js +// promise +try { + let gattClient = bluetoothManager.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX"); + gattClient.connect(); + let deviceName = gattClient.getDeviceName().then((data) => { + console.info('device name' + JSON.stringify(data)); + }) +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### getRssiValue + +getRssiValue(callback: AsyncCallback<number>): void + +client获取远端蓝牙低功耗设备的信号强度 (Received Signal Strength Indication, RSSI),调用[connect](#connect)接口连接成功后才能使用。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------- | ---- | ------------------------------ | +| callback | AsyncCallback<number> | 是 | 返回信号强度,单位 dBm,通过注册回调函数获取。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900099 | Operation failed. | + +**示例:** + +```js +// callback +try { + let gattClient = bluetoothManager.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX"); + gattClient.connect(); + let rssi = gattClient.getRssiValue((err, data)=> { + console.info('rssi err ' + JSON.stringify(err)); + console.info('rssi value' + JSON.stringify(data)); + }) +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + + +### getRssiValue + +getRssiValue(): Promise<number> + +client获取远端蓝牙低功耗设备的信号强度 (Received Signal Strength Indication, RSSI),调用[connect](#connect)接口连接成功后才能使用。 + +**需要权限**:ohos.permission.USE_BLUETOOTH + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +**返回值:** + +| 类型 | 说明 | +| --------------------- | --------------------------------- | +| Promise<number> | 返回信号强度,单位 dBm,通过promise形式获取。 | + +**错误码**: + +以下错误码的详细介绍请参见[蓝牙服务子系统错误码](../errorcodes/errorcode-bluetoothManager.md)。 + +| 错误码ID | 错误信息 | +| -------- | ---------------------------- | +|2900099 | Operation failed. | + +**示例:** + +```js +// promise +try { + let gattClient = bluetoothManager.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX"); + let rssi = gattClient.getRssiValue().then((data) => { + console.info('rssi' + JSON.stringify(data)); + }) +} catch (err) { + console.error("errCode:" + err.code + ",errMessage:" + err.message); +} +``` + +## ScanMode + +枚举,扫描模式。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 值 | 说明 | +| ---------------------------------------- | ---- | --------------- | +| SCAN_MODE_NONE | 0 | 没有扫描模式。 | +| SCAN_MODE_CONNECTABLE | 1 | 可连接扫描模式。 | +| SCAN_MODE_GENERAL_DISCOVERABLE | 2 | general发现模式。 | +| SCAN_MODE_LIMITED_DISCOVERABLE | 3 | limited发现模式。 | +| SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE | 4 | 可连接general发现模式。 | +| SCAN_MODE_CONNECTABLE_LIMITED_DISCOVERABLE | 5 | 可连接limited发现模式。 | + +## BondState + +枚举,配对状态。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 值 | 说明 | +| ------------------ | ---- | ------ | +| BOND_STATE_INVALID | 0 | 无效的配对。 | +| BOND_STATE_BONDING | 1 | 正在配对。 | +| BOND_STATE_BONDED | 2 | 已配对。 | + + +## SppOption + +描述spp的配置参数。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------ | ------------------- | ---- | ---- | ----------- | +| uuid | string | 是 | 是 | spp单据的uuid。 | +| secure | boolean | 是 | 是 | 是否是安全通道。 | +| type | [SppType](#spptype) | 是 | 是 | Spp链路类型。 | + + +## SppType + +枚举,Spp链路类型。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 值 | 说明 | +| ---------- | ---- | ------------- | +| SPP_RFCOMM | 0 | 表示rfcomm链路类型。 | + + +## GattService + +描述service的接口参数定义。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| --------------- | ---------------------------------------- | ---- | ---- | ---------------------------------------- | +| serviceUuid | string | 是 | 是 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | +| isPrimary | boolean | 是 | 是 | 如果是主服务设置为true,否则设置为false。 | +| characteristics | Array<[BLECharacteristic](#blecharacteristic)> | 是 | 是 | 当前服务包含的特征列表。 | +| includeServices | Array<[GattService](#gattservice)> | 是 | 是 | 当前服务依赖的其它服务。 | + + +## BLECharacteristic + +描述characteristic的接口参数定义 。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------------- | ---------------------------------------- | ---- | ---- | ---------------------------------------- | +| serviceUuid | string | 是 | 是 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | +| characteristicUuid | string | 是 | 是 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 | +| characteristicValue | ArrayBuffer | 是 | 是 | 特征对应的二进制值。 | +| descriptors | Array<[BLEDescriptor](#bledescriptor)> | 是 | 是 | 特定特征的描述符列表。 | + + +## BLEDescriptor + +描述descriptor的接口参数定义 。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------------ | ----------- | ---- | ---- | ---------------------------------------- | +| serviceUuid | string | 是 | 是 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | +| characteristicUuid | string | 是 | 是 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 | +| descriptorUuid | string | 是 | 是 | 描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。 | +| descriptorValue | ArrayBuffer | 是 | 是 | 描述符对应的二进制值。 | + + +## NotifyCharacteristic + +描述server端特征值变化时发送的特征通知参数定义。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------------- | ----------- | ---- | ---- | ---------------------------------------- | +| serviceUuid | string | 是 | 是 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | +| characteristicUuid | string | 是 | 是 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 | +| characteristicValue | ArrayBuffer | 是 | 是 | 特征对应的二进制值。 | +| confirm | boolean | 是 | 是 | 如果是notification则对端回复确认设置为true,如果是indication则对端不需要回复确认设置为false。 | + + +## CharacteristicReadRequest + +描述server端订阅后收到的特征值读请求事件参数结构。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------------ | ------ | ---- | ---- | ---------------------------------------- | +| deviceId | string | 是 | 否 | 表示发送特征值读请求的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | +| transId | number | 是 | 否 | 表示读请求的传输ID,server端回复响应时需填写相同的传输ID。 | +| offset | number | 是 | 否 | 表示读特征值数据的起始位置。例如:k表示从第k个字节开始读,server端回复响应时需填写相同的offset。 | +| characteristicUuid | string | 是 | 否 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 | +| serviceUuid | string | 是 | 否 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | + + +## CharacteristicWriteRequest + +描述server端订阅后收到的特征值写请求事件参数结构。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------------ | ------ | ---- | ---- | ---------------------------------------- | +| deviceId | string | 是 | 否 | 表示发送特征值写请求的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | +| transId | number | 是 | 否 | 表示写请求的传输ID,server端回复响应时需填写相同的传输ID。 | +| offset | number | 是 | 否 | 表示写特征值数据的起始位置。例如:k表示从第k个字节开始写,server端回复响应时需填写相同的offset。 | +| descriptorUuid | string | 是 | 否 | 表示描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。 | +| characteristicUuid | string | 是 | 否 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 | +| serviceUuid | string | 是 | 否 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | + + +## DescriptorReadRequest + +描述server端订阅后收到的描述符读请求事件参数结构。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------------ | ------ | ---- | ---- | ---------------------------------------- | +| deviceId | string | 是 | 否 | 表示发送描述符读请求的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | +| transId | number | 是 | 否 | 表示读请求的传输ID,server端回复响应时需填写相同的传输ID。 | +| offset | number | 是 | 否 | 表示读描述符数据的起始位置。例如:k表示从第k个字节开始读,server端回复响应时需填写相同的offset。 | +| descriptorUuid | string | 是 | 否 | 表示描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。 | +| characteristicUuid | string | 是 | 否 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 | +| serviceUuid | string | 是 | 否 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | + + +## DescriptorWriteRequest + +描述server端订阅后收到的描述符写请求事件参数结构。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------------ | ----------- | ---- | ---- | ---------------------------------------- | +| deviceId | string | 是 | 否 | 表示发送描述符写请求的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | +| transId | number | 是 | 否 | 表示写请求的传输ID,server端回复响应时需填写相同的传输ID。 | +| offset | number | 是 | 否 | 表示写描述符数据的起始位置。例如:k表示从第k个字节开始写,server端回复响应时需填写相同的offset。 | +| isPrep | boolean | 是 | 否 | 表示写请求是否立即执行。 | +| needRsp | boolean | 是 | 否 | 表示是否要给client端回复响应。 | +| value | ArrayBuffer | 是 | 否 | 表示写入的描述符二进制数据。 | +| descriptorUuid | string | 是 | 否 | 表示描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。 | +| characteristicUuid | string | 是 | 否 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 | +| serviceUuid | string | 是 | 否 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | + + +## ServerResponse + +描述server端回复client端读/写请求的响应参数结构。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| -------- | ----------- | ---- | ---- | -------------------------------------- | +| deviceId | string | 是 | 否 | 表示远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | +| transId | number | 是 | 否 | 表示请求的传输ID,与订阅的读/写请求事件携带的ID保持一致。 | +| status | number | 是 | 否 | 表示响应的状态,设置为0即可,表示正常。 | +| offset | number | 是 | 否 | 表示请求的读/写起始位置,与订阅的读/写请求事件携带的offset保持一致。 | +| value | ArrayBuffer | 是 | 否 | 表示回复响应的二进制数据。 | + + +## BLEConnectChangedState + +描述Gatt profile连接状态 。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| -------- | ------------------------------------------------- | ---- | ---- | --------------------------------------------- | +| deviceId | string | 是 | 否 | 表示远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | +| state | [ProfileConnectionState](#profileconnectionstate) | 是 | 是 | 表示BLE连接状态的枚举。 | + + +## ProfileConnectionState + +枚举,蓝牙设备的profile连接状态。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 值 | 说明 | +| ------------------- | ---- | -------------- | +| STATE_DISCONNECTED | 0 | 表示profile已断连。 | +| STATE_CONNECTING | 1 | 表示profile正在连接。 | +| STATE_CONNECTED | 2 | 表示profile已连接。 | +| STATE_DISCONNECTING | 3 | 表示profile正在断连。 | + + +## ScanFilter + +扫描过滤参数。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ---------------------------------------- | ----------- | ---- | ---- | ------------------------------------------------------------ | +| deviceId | string | 是 | 是 | 表示过滤的BLE设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | +| name | string | 是 | 是 | 表示过滤的BLE设备名。 | +| serviceUuid | string | 是 | 是 | 表示过滤包含该UUID服务的设备,例如:00001888-0000-1000-8000-00805f9b34fb。 | +| serviceUuidMask | string | 是 | 是 | 表示过滤包含该UUID服务掩码的设备,例如:FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF。 | +| serviceSolicitationUuid | string | 是 | 是 | 表示过滤包含该UUID服务请求的设备,例如:00001888-0000-1000-8000-00805F9B34FB。 | +| serviceSolicitationUuidMask | string | 是 | 是 | 表示过滤包含该UUID服务请求掩码的设备,例如:FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF。 | +| serviceData | ArrayBuffer | 是 | 是 | 表示过滤包含该服务相关数据的设备,例如:[0x90,0x00,0xF1,0xF2]。 | +| serviceDataMask | ArrayBuffer | 是 | 是 | 表示过滤包含该服务相关数据掩码的设备,例如:[0xFF,0xFF,0xFF,0xFF]。 | +| manufactureId | number | 是 | 是 | 表示过滤包含该制造商ID的设备,例如:0x0006。 | +| manufactureData | ArrayBuffer | 是 | 是 | 表示过滤包含该制造商相关数据的设备,例如:[0x1F,0x2F,0x3F]。 | +| manufactureDataMask | ArrayBuffer | 是 | 是 | 表示过滤包含该制造商相关数据掩码的设备,例如:[0xFF,0xFF,0xFF]。 | + + +## ScanOptions + +扫描的配置参数。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| --------- | ----------------------- | ---- | ---- | -------------------------------------- | +| interval | number | 是 | 是 | 表示扫描结果上报延迟时间,默认值为0。 | +| dutyMode | [ScanDuty](#scanduty) | 是 | 是 | 表示扫描模式,默认值为SCAN_MODE_LOW_POWER。 | +| matchMode | [MatchMode](#matchmode) | 是 | 是 | 表示硬件的过滤匹配模式,默认值为MATCH_MODE_AGGRESSIVE。 | + + +## ScanDuty + +枚举,扫描模式。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 值 | 说明 | +| --------------------- | ---- | ------------ | +| SCAN_MODE_LOW_POWER | 0 | 表示低功耗模式,默认值。 | +| SCAN_MODE_BALANCED | 1 | 表示均衡模式。 | +| SCAN_MODE_LOW_LATENCY | 2 | 表示低延迟模式。 | + + +## MatchMode + +枚举,硬件过滤匹配模式。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 值 | 说明 | +| --------------------- | ---- | ---------------------------------------- | +| MATCH_MODE_AGGRESSIVE | 1 | 表示硬件上报扫描结果门限较低,比如扫描到的功率较低或者一段时间扫描到的次数较少也触发上报,默认值。 | +| MATCH_MODE_STICKY | 2 | 表示硬件上报扫描结果门限较高,更高的功率门限以及扫描到多次才会上报。 | + + +## ScanResult + +扫描结果上报数据。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| -------- | ----------- | ---- | ---- | ---------------------------------- | +| deviceId | string | 是 | 否 | 表示扫描到的设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | +| rssi | number | 是 | 否 | 表示扫描到的设备的rssi值。 | +| data | ArrayBuffer | 是 | 否 | 表示扫描到的设备发送的广播包。 | + + +## BluetoothState + +枚举,蓝牙开关状态。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 值 | 说明 | +| --------------------- | ---- | ------------------ | +| STATE_OFF | 0 | 表示蓝牙已关闭。 | +| STATE_TURNING_ON | 1 | 表示蓝牙正在打开。 | +| STATE_ON | 2 | 表示蓝牙已打开。 | +| STATE_TURNING_OFF | 3 | 表示蓝牙正在关闭。 | +| STATE_BLE_TURNING_ON | 4 | 表示蓝牙正在打开LE-only模式。 | +| STATE_BLE_ON | 5 | 表示蓝牙正处于LE-only模式。 | +| STATE_BLE_TURNING_OFF | 6 | 表示蓝牙正在关闭LE-only模式。 | + + +## AdvertiseSetting + +描述蓝牙低功耗设备发送广播的参数。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ----------- | ------- | ---- | ---- | ---------------------------------------- | +| interval | number | 是 | 是 | 表示广播间隔,最小值设置32个slot表示20ms,最大值设置16384个slot,默认值设置为1600个slot表示1s。 | +| txPower | number | 是 | 是 | 表示发送功率,最小值设置-127,最大值设置1,默认值设置-7,单位dbm。 | +| connectable | boolean | 是 | 是 | 表示是否是可连接广播,默认值设置为true。 | + + +## AdvertiseData + +描述BLE广播数据包的内容。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| --------------- | ---------------------------------------- | ---- | ---- | --------------------------- | +| serviceUuids | Array<string> | 是 | 是 | 表示要广播的服务 UUID 列表。 | +| manufactureData | Array<[ManufactureData](#manufacturedata)> | 是 | 是 | 表示要广播的广播的制造商信息列表。 | +| serviceData | Array<[ServiceData](#servicedata)> | 是 | 是 | 表示要广播的服务数据列表。 | + + +## ManufactureData + +描述BLE广播数据包的内容。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ---------------- | ------------------- | ---- | ---- | ------------------ | +| manufactureId | number | 是 | 是 | 表示制造商的ID,由蓝牙SIG分配。 | +| manufactureValue | ArrayBuffer | 是 | 是 | 表示制造商发送的制造商数据。 | + + +## ServiceData + +描述广播包中服务数据内容。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------ | ----------- | ---- | ---- | ---------- | +| serviceUuid | string | 是 | 是 | 表示服务的UUID。 | +| serviceValue | ArrayBuffer | 是 | 是 | 表示服务数据。 | + + +## PinRequiredParam + +描述配对请求参数。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| -------- | ------ | ---- | ---- | ----------- | +| deviceId | string | 是 | 否 | 表示要配对的设备ID。 | +| pinCode | string | 是 | 否 | 表示要配对的密钥。 | + + +## BondStateParam + +描述配对状态参数。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| -------- | ------ | ---- | ---- | ----------- | +| deviceId | string | 是 | 否 | 表示要配对的设备ID。 | +| state | BondState | 是 | 否 | 表示配对设备的状态。 | + + +## StateChangeParam + +描述profile状态改变参数。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| -------- | ------------------------------------------------- | ---- | ---- | ------------------------------- | +| deviceId | string | 是 | 否 | 表示蓝牙设备地址。 | +| state | [ProfileConnectionState](#profileconnectionstate) | 是 | 否 | 表示蓝牙设备的profile连接状态。 | + + +## DeviceClass + +描述蓝牙设备的类别。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| --------------- | ----------------------------------- | ---- | ---- | ---------------- | +| majorClass | [MajorClass](#majorclass) | 是 | 否 | 表示蓝牙设备主要类别的枚举。 | +| majorMinorClass | [MajorMinorClass](#majorminorclass) | 是 | 否 | 表示主要次要蓝牙设备类别的枚举。 | +| classOfDevice | number | 是 | 否 | 表示设备类别。 | + + + +## MajorClass + +枚举,蓝牙设备主要类别。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 值 | 说明 | +| ------------------- | ------ | ---------- | +| MAJOR_MISC | 0x0000 | 表示杂项设备。 | +| MAJOR_COMPUTER | 0x0100 | 表示计算机设备。 | +| MAJOR_PHONE | 0x0200 | 表示手机设备。 | +| MAJOR_NETWORKING | 0x0300 | 表示网络设备。 | +| MAJOR_AUDIO_VIDEO | 0x0400 | 表示音频和视频设备。 | +| MAJOR_PERIPHERAL | 0x0500 | 表示外围设备。 | +| MAJOR_IMAGING | 0x0600 | 表示成像设备。 | +| MAJOR_WEARABLE | 0x0700 | 表示可穿戴设备。 | +| MAJOR_TOY | 0x0800 | 表示玩具设备。 | +| MAJOR_HEALTH | 0x0900 | 表示健康设备。 | +| MAJOR_UNCATEGORIZED | 0x1F00 | 表示未分类设备。 | + + +## MajorMinorClass + +枚举,主要次要蓝牙设备类别。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 值 | 说明 | +| ---------------------------------------- | ------ | --------------- | +| COMPUTER_UNCATEGORIZED | 0x0100 | 表示未分类计算机设备。 | +| COMPUTER_DESKTOP | 0x0104 | 表示台式计算机设备。 | +| COMPUTER_SERVER | 0x0108 | 表示服务器设备。 | +| COMPUTER_LAPTOP | 0x010C | 表示便携式计算机设备。 | +| COMPUTER_HANDHELD_PC_PDA | 0x0110 | 表示手持式计算机设备。 | +| COMPUTER_PALM_SIZE_PC_PDA | 0x0114 | 表示掌上电脑设备。 | +| COMPUTER_WEARABLE | 0x0118 | 表示可穿戴计算机设备。 | +| COMPUTER_TABLET | 0x011C | 表示平板电脑设备。 | +| PHONE_UNCATEGORIZED | 0x0200 | 表示未分类手机设备。 | +| PHONE_CELLULAR | 0x0204 | 表示便携式手机设备。 | +| PHONE_CORDLESS | 0x0208 | 表示无线电话设备。 | +| PHONE_SMART | 0x020C | 表示智能手机设备。 | +| PHONE_MODEM_OR_GATEWAY | 0x0210 | 表示调制解调器或网关手机设备。 | +| PHONE_ISDN | 0x0214 | 表示ISDN手机设备。 | +| NETWORK_FULLY_AVAILABLE | 0x0300 | 表示网络完全可用设备。 | +| NETWORK_1_TO_17_UTILIZED | 0x0320 | 表示使用网络1到17设备。 | +| NETWORK_17_TO_33_UTILIZED | 0x0340 | 表示使用网络17到33设备。 | +| NETWORK_33_TO_50_UTILIZED | 0x0360 | 表示使用网络33到50设备。 | +| NETWORK_60_TO_67_UTILIZED | 0x0380 | 表示使用网络60到67设备。 | +| NETWORK_67_TO_83_UTILIZED | 0x03A0 | 表示使用网络67到83设备。 | +| NETWORK_83_TO_99_UTILIZED | 0x03C0 | 表示使用网络83到99设备。 | +| NETWORK_NO_SERVICE | 0x03E0 | 表示网络无服务设备。 | +| AUDIO_VIDEO_UNCATEGORIZED | 0x0400 | 表示未分类音频视频设备。 | +| AUDIO_VIDEO_WEARABLE_HEADSET | 0x0404 | 表示可穿戴式音频视频设备。 | +| AUDIO_VIDEO_HANDSFREE | 0x0408 | 表示免提音频视频设备。 | +| AUDIO_VIDEO_MICROPHONE | 0x0410 | 表示麦克风音频视频设备。 | +| AUDIO_VIDEO_LOUDSPEAKER | 0x0414 | 表示扬声器音频视频设备。 | +| AUDIO_VIDEO_HEADPHONES | 0x0418 | 表示头戴式音频视频设备。 | +| AUDIO_VIDEO_PORTABLE_AUDIO | 0x041C | 表示便携式音频视频设备。 | +| AUDIO_VIDEO_CAR_AUDIO | 0x0420 | 表示汽车音频视频设备。 | +| AUDIO_VIDEO_SET_TOP_BOX | 0x0424 | 表示机顶盒音频视频设备。 | +| AUDIO_VIDEO_HIFI_AUDIO | 0x0428 | 表示高保真音响设备。 | +| AUDIO_VIDEO_VCR | 0x042C | 表示录像机音频视频设备。 | +| AUDIO_VIDEO_VIDEO_CAMERA | 0x0430 | 表示照相机音频视频设备。 | +| AUDIO_VIDEO_CAMCORDER | 0x0434 | 表示摄像机音频视频设备。 | +| AUDIO_VIDEO_VIDEO_MONITOR | 0x0438 | 表示监视器音频视频设备。 | +| AUDIO_VIDEO_VIDEO_DISPLAY_AND_LOUDSPEAKER | 0x043C | 表示视频显示器和扬声器设备。 | +| AUDIO_VIDEO_VIDEO_CONFERENCING | 0x0440 | 表示音频视频会议设备。 | +| AUDIO_VIDEO_VIDEO_GAMING_TOY | 0x0448 | 表示游戏玩具音频视频设备。 | +| PERIPHERAL_NON_KEYBOARD_NON_POINTING | 0x0500 | 表示非键盘非指向外围设备。 | +| PERIPHERAL_KEYBOARD | 0x0540 | 表示外设键盘设备。 | +| PERIPHERAL_POINTING_DEVICE | 0x0580 | 表示定点装置外围设备。 | +| PERIPHERAL_KEYBOARD_POINTING | 0x05C0 | 表示键盘指向外围设备。 | +| PERIPHERAL_UNCATEGORIZED | 0x0500 | 表示未分类外围设备。 | +| PERIPHERAL_JOYSTICK | 0x0504 | 表示周边操纵杆设备。 | +| PERIPHERAL_GAMEPAD | 0x0508 | 表示周边游戏板设备。 | +| PERIPHERAL_REMOTE_CONTROL | 0x05C0 | 表示远程控制外围设备。 | +| PERIPHERAL_SENSING_DEVICE | 0x0510 | 表示外围传感设备设备。 | +| PERIPHERAL_DIGITIZER_TABLET | 0x0514 | 表示外围数字化仪平板电脑设备。 | +| PERIPHERAL_CARD_READER | 0x0518 | 表示外围读卡器设备。 | +| PERIPHERAL_DIGITAL_PEN | 0x051C | 表示外设数码笔设备。 | +| PERIPHERAL_SCANNER_RFID | 0x0520 | 表示射频识别扫描仪外围设备。 | +| PERIPHERAL_GESTURAL_INPUT | 0x0522 | 表示手势输入外围设备。 | +| IMAGING_UNCATEGORIZED | 0x0600 | 表示未分类的图像设备。 | +| IMAGING_DISPLAY | 0x0610 | 表示图像显示设备。 | +| IMAGING_CAMERA | 0x0620 | 表示成像照相机设备。 | +| IMAGING_SCANNER | 0x0640 | 表示成像扫描仪设备。 | +| IMAGING_PRINTER | 0x0680 | 表示成像打印机设备。 | +| WEARABLE_UNCATEGORIZED | 0x0700 | 表示未分类的可穿戴设备。 | +| WEARABLE_WRIST_WATCH | 0x0704 | 表示可穿戴腕表设备。 | +| WEARABLE_PAGER | 0x0708 | 表示可穿戴寻呼机设备。 | +| WEARABLE_JACKET | 0x070C | 表示夹克可穿戴设备。 | +| WEARABLE_HELMET | 0x0710 | 表示可穿戴头盔设备。 | +| WEARABLE_GLASSES | 0x0714 | 表示可穿戴眼镜设备。 | +| TOY_UNCATEGORIZED | 0x0800 | 表示未分类的玩具设备。 | +| TOY_ROBOT | 0x0804 | 表示玩具机器人设备。 | +| TOY_VEHICLE | 0x0808 | 表示玩具车设备。 | +| TOY_DOLL_ACTION_FIGURE | 0x080C | 表示人形娃娃玩具设备。 | +| TOY_CONTROLLER | 0x0810 | 表示玩具控制器设备。 | +| TOY_GAME | 0x0814 | 表示玩具游戏设备。 | +| HEALTH_UNCATEGORIZED | 0x0900 | 表示未分类健康设备。 | +| HEALTH_BLOOD_PRESSURE | 0x0904 | 表示血压健康设备。 | +| HEALTH_THERMOMETER | 0x0908 | 表示温度计健康设备。 | +| HEALTH_WEIGHING | 0x090C | 表示体重健康设备。 | +| HEALTH_GLUCOSE | 0x0910 | 表示葡萄糖健康设备。 | +| HEALTH_PULSE_OXIMETER | 0x0914 | 表示脉搏血氧仪健康设备。 | +| HEALTH_PULSE_RATE | 0x0918 | 表示脉搏率健康设备。 | +| HEALTH_DATA_DISPLAY | 0x091C | 表示数据显示健康设备。 | +| HEALTH_STEP_COUNTER | 0x0920 | 表示阶梯计数器健康设备。 | +| HEALTH_BODY_COMPOSITION_ANALYZER | 0x0924 | 表示身体成分分析仪健康设备。 | +| HEALTH_PEAK_FLOW_MONITOR | 0x0928 | 表示湿度计健康设备。 | +| HEALTH_MEDICATION_MONITOR | 0x092C | 表示药物监视仪健康设备。 | +| HEALTH_KNEE_PROSTHESIS | 0x0930 | 表示膝盖假肢健康设备。 | +| HEALTH_ANKLE_PROSTHESIS | 0x0934 | 表示脚踝假肢健康设备。 | +| HEALTH_GENERIC_HEALTH_MANAGER | 0x0938 | 表示通用健康管理设备。 | +| HEALTH_PERSONAL_MOBILITY_DEVICE | 0x093C | 表示个人移动健康设备。 | + + +## PlayingState + +枚举,蓝牙A2DP 播放状态。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 值 | 说明 | +| ----------------- | ------ | ------- | +| STATE_NOT_PLAYING | 0x0000 | 表示未播放。 | +| STATE_PLAYING | 0x0001 | 表示正在播放。 | + + +## ProfileId + +蓝牙profile枚举,API9新增PROFILE_HID_HOST,PROFILE_PAN_NETWORK。 + +**系统能力**:SystemCapability.Communication.Bluetooth.Core。 + +| 名称 | 值 | 说明 | +| -------------------------------- | ------ | --------------- | +| PROFILE_A2DP_SOURCE | 1 | 表示A2DP profile。 | +| PROFILE_HANDS_FREE_AUDIO_GATEWAY | 4 | 表示HFP profile。 | +| PROFILE_HID_HOST | 6 | 表示HID profile。 | +| PROFILE_PAN_NETWORK | 7 | 表示PAN profile。 | \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis/js-apis-system-bluetooth.md b/zh-cn/application-dev/reference/apis/js-apis-system-bluetooth.md index 7e4043be8c4c7b55404274d2c931e897324eeefb..891efefd1a0781b9c9e761107fc7999ddfebbf96 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-system-bluetooth.md +++ b/zh-cn/application-dev/reference/apis/js-apis-system-bluetooth.md @@ -19,14 +19,12 @@ import bluetooth from '@system.bluetooth'; 开始搜寻附近的低功耗蓝牙外围设备。此操作比较耗费系统资源,请在搜索并连接到设备后调用[bluetooth.stopBLEScan](#bluetoothstopblescanobject)方法停止搜索。 -**需要权限:** ohos.permission.DISCOVER_BLUETOOTH、ohos.permission.LOCATION - **系统能力:** SystemCapability.Communication.Bluetooth.Lite **参数:** **表1** StartBLEScanOptions -| 参数名 | 类型 | 必填 | 说明 | +| 名称 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | interval | number | 否 | 上报设备的间隔,单位毫秒,默认值为0。0表示找到新设备立即上报,其他数值根据传入的间隔上报。 | | success | Function | 否 | 接口调用成功的回调函数。 | @@ -55,14 +53,12 @@ import bluetooth from '@system.bluetooth'; 停止搜寻附近的低功耗蓝牙外围设备。与[bluetooth.startBLEScan(OBJECT)](#bluetoothstartblescanobject)接口配套使用。 -**需要权限:** ohos.permission.DISCOVER_BLUETOOTH、ohos.permission.LOCATION - **系统能力:** SystemCapability.Communication.Bluetooth.Lite **参数:** **表2** StopBLEScanOptions -| 参数名 | 类型 | 必填 | 说明 | +| 名称 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | success | Function | 否 | 接口调用成功的回调函数。 | | fail | Function | 否 | 接口调用失败的回调函数。 | @@ -89,14 +85,12 @@ import bluetooth from '@system.bluetooth'; 订阅寻找到新设备。再次调用时,会覆盖前一次调用效果,即仅最后一次调用生效。 -**需要权限:** ohos.permission.DISCOVER_BLUETOOTH、ohos.permission.LOCATION - **系统能力:** SystemCapability.Communication.Bluetooth.Lite **参数:** **表3** SubscribeBLEFoundOptions -| 参数 | 类型 | 必填 | 说明 | +| 名称 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | success | Function | 是 | 寻找到新设备上报时调用的回调函数。 | | fail | Function | 否 | 接口调用失败的回调函数。 | @@ -135,8 +129,6 @@ import bluetooth from '@system.bluetooth'; 解除订阅寻找到新设备。 -**需要权限:** ohos.permission.DISCOVER_BLUETOOTH、ohos.permission.LOCATION - **系统能力:** SystemCapability.Communication.Bluetooth.Lite **示例:** diff --git a/zh-cn/application-dev/reference/errorcodes/errorcode-bluetoothManager.md b/zh-cn/application-dev/reference/errorcodes/errorcode-bluetoothManager.md new file mode 100644 index 0000000000000000000000000000000000000000..cbeb39e34a20ae984a62c6f55373c63eb26371d4 --- /dev/null +++ b/zh-cn/application-dev/reference/errorcodes/errorcode-bluetoothManager.md @@ -0,0 +1,128 @@ +# 蓝牙服务子系统错误码 + +## 2900001 + +**错误信息** + +Service stopped. + +**错误描述** + +蓝牙服务已停止,蓝牙服务相关的接口无法调用。 + +**可能原因** + +蓝牙服务启动异常。 + +**处理步骤** + +重新执行打开或关闭蓝牙。 + +## 2900003 + +**错误信息** + +Bluetooth switch is off. + +**错误描述** + +蓝牙开关已关闭。 + +**可能原因** + +蓝牙开关已关闭。 + +**处理步骤** + +重新执行打开蓝牙开关。 + +## 2900004 + +**错误信息** + +Profile is not supported. + +**错误描述** + +配置文件是不支持的。 + +**可能原因** + +该配置文件在当前设备环境不支持。 + +**处理步骤** + +检查设备是否支持该配置文件功能,若不支持则停止调用。 + +## 2900099 + +**错误信息** + +Operation failed. + +**错误描述** + +操作失败。 + +**可能原因** + +该配置文件在当前设备环境不支持。 + +**处理步骤** + +请重试该操作。 + +## 2901000 + +**错误信息** + +Read forbidden. + +**错误描述** + +禁止读操作。 + +**可能原因** + +无读操作权限。 + +**处理步骤** + +检查是否有读操作权限。 + +## 2901001 + +**错误信息** + +Write forbidden. + +**错误描述** + +禁止写操作。 + +**可能原因** + +无写操作权限。 + +**处理步骤** + +检查是否有写操作权限。 + +## 2901054 + +**错误信息** + +IO error. + +**错误描述** + +IO传输失败。 + +**可能原因** + +IO传输异常,造成失败。 + +**处理步骤** + +请重试该操作。 +