鸿蒙开发通信与连接:【@ohos.bluetooth (蓝牙)】

蓝牙

icon-note.gif 说明:  本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

蓝牙模块提供了基础的传统蓝牙能力以及BLE的扫描、广播等功能。

导入模块

import bluetooth from '@ohos.bluetooth';

bluetooth.enableBluetooth8+

enableBluetooth(): boolean

开启蓝牙。

需要权限:ohos.permission.DISCOVER_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

返回值:

类型说明
boolean打开蓝牙,成功返回true,否则返回false。

示例:

let enable = bluetooth.enableBluetooth();

bluetooth.disableBluetooth8+

disableBluetooth(): boolean

关闭蓝牙。

需要权限:ohos.permission.DISCOVER_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

返回值:

类型说明
boolean关闭蓝牙,成功返回true,否则返回false。

示例:

let disable = bluetooth.disableBluetooth();

bluetooth.getLocalName8+

getLocalName(): string

获取蓝牙本地设备名称。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

返回值:

类型说明
string蓝牙本地设备名称。

示例:

let localName = bluetooth.getLocalName();

bluetooth.getState

getState(): BluetoothState

获取蓝牙开关状态。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

返回值:

类型说明
[BluetoothState]表示蓝牙开关状态。

示例:

let state = bluetooth.getState();

bluetooth.getBtConnectionState

getBtConnectionState(): ProfileConnectionState

获取蓝牙设备的Profile连接状态。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

返回值:

类型说明
[ProfileConnectionState]表示蓝牙设备的Profile连接状态。

示例:

let connectionState = bluetooth.getBtConnectionState();

bluetooth.setLocalName8+

setLocalName(name: string): boolean

设置蓝牙本地设备名称。

需要权限:ohos.permission.DISCOVER_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
namestring要设置的蓝牙名称,最大长度为248字节数。

返回值:

类型说明
boolean设置蓝牙本地设备名称,成功返回true,否则返回false。

示例:

let ret = bluetooth.setLocalName('device_name');

bluetooth.pairDevice

pairDevice(deviceId: string): boolean

发起蓝牙配对。

需要权限:ohos.permission.DISCOVER_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
deviceIdstring表示配对的远端设备地址,例如:“XX:XX:XX:XX:XX:XX”。

返回值:

类型说明
boolean发起蓝牙配对,成功返回true,否则返回false。

示例:

// 实际的地址可由扫描流程获取
let result = bluetooth.pairDevice("XX:XX:XX:XX:XX:XX");

bluetooth.getProfileConnState8+

getProfileConnState(profileId: ProfileId): ProfileConnectionState

获取profile的连接状态。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
ProfileIdprofileId表示profile的枚举值,例如:PROFILE_A2DP_SOURCE。

返回值:

类型说明
[ProfileConnectionState]profile的连接状态。

示例:

let result = bluetooth.getProfileConnState(bluetooth.ProfileId.PROFILE_A2DP_SOURCE);

bluetooth.cancelPairedDevice8+

cancelPairedDevice(deviceId: string): boolean

删除配对的远程设备。

此接口为系统接口。

需要权限:ohos.permission.DISCOVER_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
deviceIdstring表示要删除的远程设备的地址,例如:“XX:XX:XX:XX:XX:XX”。

返回值:

类型说明
boolean启动取消配对,成功返回true,否则返回false。

示例:

let result = bluetooth.cancelPairedDevice("XX:XX:XX:XX:XX:XX");

bluetooth.getRemoteDeviceName8+

getRemoteDeviceName(deviceId: string): string

获取对端蓝牙设备的名称。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
deviceIdstring表示远程设备的地址,例如:“XX:XX:XX:XX:XX:XX”。

返回值:

类型说明
string以字符串格式返回设备名称。

示例:

let remoteDeviceName = bluetooth.getRemoteDeviceName("XX:XX:XX:XX:XX:XX");

bluetooth.getRemoteDeviceClass8+

getRemoteDeviceClass(deviceId: string): DeviceClass

获取对端蓝牙设备的类别。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
deviceIdstring表示远程设备的地址,例如:“XX:XX:XX:XX:XX:XX”。

返回值:

类型说明
[DeviceClass]远程设备的类别。

示例:

let remoteDeviceClass = bluetooth.getRemoteDeviceClass("XX:XX:XX:XX:XX:XX");

bluetooth.getPairedDevices8+

getPairedDevices(): Array

获取蓝牙配对列表。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

返回值:

类型说明
Array已配对蓝牙设备的地址列表。

示例:

let devices = bluetooth.getPairedDevices();

bluetooth.setBluetoothScanMode8+

setBluetoothScanMode(mode: ScanMode, duration: number): boolean

设置蓝牙扫描模式,可以被远端设备发现。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
mode[ScanMode]蓝牙扫描模式。
durationnumber设备可被发现的持续时间,单位为毫秒;设置为0则持续可发现。

返回值:

类型说明
boolean设置蓝牙扫描,成功返回true,否则返回false。

示例:

// 设置为可连接可发现才可被远端设备扫描到,可以连接。
let result = bluetooth.setBluetoothScanMode(bluetooth.ScanMode.SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE, 100);

bluetooth.getBluetoothScanMode8+

getBluetoothScanMode(): ScanMode

获取蓝牙扫描模式。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

返回值:

类型说明
[ScanMode]蓝牙扫描模式。

示例:

let scanMode = bluetooth.getBluetoothScanMode();

bluetooth.startBluetoothDiscovery8+

startBluetoothDiscovery(): boolean

开启蓝牙扫描,可以发现远端设备。

需要权限:ohos.permission.DISCOVER_BLUETOOTH;ohos.permission.LOCATION

系统能力:SystemCapability.Communication.Bluetooth.Core。

返回值:

类型说明
boolean开启蓝牙扫描,成功返回true,否则返回false。

示例:

let deviceId;
function onReceiveEvent(data) {
    deviceId = data;
}
bluetooth.on('bluetoothDeviceFind', onReceiveEvent);
let result = bluetooth.startBluetoothDiscovery();

bluetooth.stopBluetoothDiscovery8+

stopBluetoothDiscovery(): boolean

关闭蓝牙扫描。

需要权限:ohos.permission.DISCOVER_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

返回值:

类型说明
boolean关闭蓝牙扫描,成功返回true,否则返回false。

示例:

let result = bluetooth.stopBluetoothDiscovery();

bluetooth.setDevicePairingConfirmation8+

setDevicePairingConfirmation(device: string, accept: boolean): boolean

设置设备配对请求确认。

需要权限:ohos.permission.MANAGE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
devicestring表示远端设备地址,例如:“XX:XX:XX:XX:XX:XX”。
acceptboolean接受配对请求设置为true,否则设置为false。

返回值:

类型说明
boolean设置设备配对确认,成功返回true,否则返回false。

示例:

// 订阅“pinRequired”配对请求事件,收到远端配对请求后设置配对确认
function onReceivePinRequiredEvent(data) { // data为配对请求的入参,配对请求参数
    console.info('pin required  = '+ JSON.stringify(data));
    bluetooth.setDevicePairingConfirmation(data.deviceId, true);
}
bluetooth.on("pinRequired", onReceivePinRequiredEvent);

bluetooth.on(‘bluetoothDeviceFind’)8+

on(type: “bluetoothDeviceFind”, callback: Callback<Array>): void

订阅蓝牙设备发现上报事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"bluetoothDeviceFind"字符串,表示蓝牙设备发现事件。
callbackCallback<Array>表示回调函数的入参,发现的设备集合。回调函数由用户创建通过该接口注册。

返回值:

示例:

function onReceiveEvent(data) { // data为蓝牙设备地址集合
    console.info('bluetooth device find = '+ JSON.stringify(data));
}
bluetooth.on('bluetoothDeviceFind', onReceiveEvent);

bluetooth.off(‘bluetoothDeviceFind’)8+

off(type: “bluetoothDeviceFind”, callback?: Callback<Array>): void

取消订阅蓝牙设备发现上报事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"bluetoothDeviceFind"字符串,表示蓝牙设备发现事件。
callbackCallback<Array>表示取消订阅蓝牙设备发现事件上报。不填该参数则取消订阅该type对应的所有回调。

返回值:

示例:

function onReceiveEvent(data) {
    console.info('bluetooth device find = '+ JSON.stringify(data));
}
bluetooth.on('bluetoothDeviceFind', onReceiveEvent);
bluetooth.off('bluetoothDeviceFind', onReceiveEvent);

bluetooth.on(‘pinRequired’)8+

on(type: “pinRequired”, callback: Callback): void

订阅远端蓝牙设备的配对请求事件。

需要权限:ohos.permission.DISCOVER_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"pinRequired"字符串,表示配对请求事件。
callbackCallback<[PinRequiredParam]>表示回调函数的入参,配对请求。回调函数由用户创建通过该接口注册。

返回值:

示例:

function onReceiveEvent(data) { // data为配对请求参数
    console.info('pin required = '+ JSON.stringify(data));
}
bluetooth.on('pinRequired', onReceiveEvent);

bluetooth.off(‘pinRequired’)8+

off(type: “pinRequired”, callback?: Callback): void

取消订阅远端蓝牙设备的配对请求事件。

需要权限:ohos.permission.DISCOVER_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"pinRequired"字符串,表示配对请求事件。
callbackCallback<[PinRequiredParam]>表示取消订阅蓝牙配对请求事件上报,入参为配对请求参数。不填该参数则取消订阅该type对应的所有回调。

返回值:

示例:

function onReceiveEvent(data) {
    console.info('pin required = '+ JSON.stringify(data));
}
bluetooth.on('pinRequired', onReceiveEvent);
bluetooth.off('pinRequired', onReceiveEvent);

bluetooth.on(‘bondStateChange’)8+

on(type: “bondStateChange”, callback: Callback): void

订阅蓝牙配对状态改变事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"bondStateChange"字符串,表示蓝牙配对状态改变事件。
callbackCallback<[BondStateParam]>表示回调函数的入参,配对的状态。回调函数由用户创建通过该接口注册。

返回值:

示例:

function onReceiveEvent(data) { // data为回调函数入参,表示配对的状态
    console.info('pair state = '+ JSON.stringify(data));
}
bluetooth.on('bondStateChange', onReceiveEvent);

bluetooth.off(‘bondStateChange’)8+

off(type: “bondStateChange”, callback?: Callback): void

取消订阅蓝牙配对状态改变事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"bondStateChange"字符串,表示蓝牙配对状态改变事件。
callbackCallback<[BondStateParam]>表示取消订阅蓝牙配对状态改变事件上报。不填该参数则取消订阅该type对应的所有回调。

返回值:

示例:

function onReceiveEvent(data) {
    console.info('bond state = '+ JSON.stringify(data));
}
bluetooth.on('bondStateChange', onReceiveEvent);
bluetooth.off('bondStateChange', onReceiveEvent);

bluetooth.on(‘stateChange’)8+

on(type: “stateChange”, callback: Callback): void

订阅蓝牙连接状态改变事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"stateChange"字符串,表示蓝牙状态改变事件。
callbackCallback<[BluetoothState]>表示回调函数的入参,蓝牙状态。回调函数由用户创建通过该接口注册。

返回值:

示例:

function onReceiveEvent(data) {
    console.info('bluetooth state = '+ JSON.stringify(data));
}
bluetooth.on('stateChange', onReceiveEvent);

bluetooth.off(‘stateChange’)8+

off(type: “stateChange”, callback?: Callback): void

取消订阅蓝牙连接状态改变事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"stateChange"字符串,表示蓝牙状态改变事件。
callbackCallback<[BluetoothState]>表示取消订阅蓝牙状态改变事件上报。不填该参数则取消订阅该type对应的所有回调。

返回值:

示例:

function onReceiveEvent(data) {
    console.info('bluetooth state = '+ JSON.stringify(data));
}
bluetooth.on('stateChange', onReceiveEvent);
bluetooth.off('stateChange', onReceiveEvent);

bluetooth.sppListen8+

sppListen(name: string, option: SppOption, callback: AsyncCallback): void

创建一个服务端监听Socket。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
namestring服务的名称。
option[SppOption]spp监听配置参数。
callbackAsyncCallback表示回调函数的入参,服务端Socket的id。

示例:

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};
bluetooth.sppListen('server1', sppOption, serverSocket);

bluetooth.sppAccept8+

sppAccept(serverSocket: number, callback: AsyncCallback): void

服务端监听socket等待客户端连接。

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
serverSocketnumber服务端socket的id。
callbackAsyncCallback表示回调函数的入参,客户端socket的id。

示例:

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;
  }
}
bluetooth.sppAccept(serverNumber, acceptClientSocket);

bluetooth.sppConnect8+

sppConnect(device: string, option: SppOption, callback: AsyncCallback): void

客户端向远端设备发起spp连接。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
devicestring对端设备地址,例如:“XX:XX:XX:XX:XX:XX”。
option[SppOption]spp客户端连接配置参数。
callbackAsyncCallback表示回调函数的入参,客户端socket的id。

示例:


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};
bluetooth.sppConnect('XX:XX:XX:XX:XX:XX', sppOption, clientSocket);

bluetooth.sppCloseServerSocket8+

sppCloseServerSocket(socket: number): void

关闭服务端监听Socket,入参socket由sppListen接口返回。

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
socketnumber服务端监听socket的id。

示例:

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;
  }
}
bluetooth.sppCloseServerSocket(serverNumber);

bluetooth.sppCloseClientSocket8+

sppCloseClientSocket(socket: number): void

关闭客户端socket,入参socket由sppAccept或sppConnect接口获取。

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
参数名类型必填说明
socketnumber客户端socket的id。

示例:

let clientNumber = -1;
function clientSocket(code, number) {
  if (code.code != 0) {
    return;
  }
  console.log('bluetooth serverSocket Number: ' + number);
  // 获取的clientNumber用作客户端后续读/写操作socket的id。
  clientNumber = number;
}
bluetooth.sppCloseClientSocket(clientNumber);

bluetooth.sppWrite8+

sppWrite(clientSocket: number, data: ArrayBuffer): boolean

通过socket向远端发送数据,入参clientSocket由sppAccept或sppConnect接口获取 。

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
clientSocketnumber客户端socket的id。
dataArrayBuffer写入的数据。

返回值:

类型说明
boolean写数据操作,成功返回true,否则返回false。

示例:

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;
let ret = bluetooth.sppWrite(clientNumber, arrayBuffer);
if (ret) {
  console.log('spp write successfully');
} else {
  console.log('spp write failed');
}

bluetooth.on(‘sppRead’)8+

on(type: “sppRead”, clientSocket: number, callback: Callback): void

订阅spp读请求事件,入参clientSocket由sppAccept或sppConnect接口获取。

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"sppRead"字符串,表示spp读请求事件。
clientSocketnumber客户端socket的id。
callbackCallback表示回调函数的入参,读取到的数据。

返回值:

示例:

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]);
}
bluetooth.on('sppRead', clientNumber, dataRead);

bluetooth.off(‘sppRead’)8+

off(type: “sppRead”, clientSocket: number, callback?: Callback): void

取消订阅spp读请求事件,入参clientSocket由sppAccept或sppConnect接口获取。

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"sppRead"字符串,表示spp读请求事件。
clientSocketnumber客户端Socket的id。
callbackCallback表示取消订阅spp读请求事件上报。不填该参数则取消订阅该type对应的所有回调。

返回值:

示例:

let clientNumber = -1;
function clientSocket(code, number) {
  if (code.code != 0) {
    return;
  }
  console.log('bluetooth serverSocket Number: ' + number);
  // 获取的clientNumber用作客户端后续读/写操作socket的id。
  clientNumber = number;
}
bluetooth.off('sppRead', clientNumber);

bluetooth.getProfile8+

getProfile(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile

通过ProfileId,获取profile的对象实例。

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
profileId[ProfileId]表示profile的枚举值,例如:PROFILE_A2DP_SOURCE。

返回值:

类型说明
[A2dpSourceProfile]或[HandsFreeAudioGatewayProfile]对应的profile的对象实例,当前支持A2dpSourceProfile, HandsFreeAudioGatewayProfile。

示例:

let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE);

bluetooth.getProfile9+

getProfile(profileId: ProfileId): A2dpSourceProfile | HandsFreeAudioGatewayProfile | HidHostProfile

通过ProfileId,获取profile的对象实例,API9新增了HidHostProfile。

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
profileId[ProfileId]表示profile的枚举值,例如:PROFILE_A2DP_SOURCE。

返回值:

类型说明
[A2dpSourceProfile]或 [HandsFreeAudioGatewayProfile]或[HidHostProfile]对应的profile的对象实例,当前支持A2dpSourceProfile/HandsFreeAudioGatewayProfile/HidHostProfile。

示例:

let hidHost = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_HID_HOST);

bluetooth.BLE

bluetooth.BLE.createGattServer

createGattServer(): GattServer

创建一个可使用的GattServer实例。

系统能力:SystemCapability.Communication.Bluetooth.Core。

返回值:

类型说明
[GattServer]server端类,使用server端方法之前需要创建该类的实例进行操作。

示例:

let gattServer = bluetooth.BLE.createGattServer();

bluetooth.BLE.createGattClientDevice

createGattClientDevice(deviceId: string): GattClientDevice

创建一个可使用的GattClientDevice实例。

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
deviceIdstring对端设备地址, 例如:“XX:XX:XX:XX:XX:XX”。

返回值:

类型说明
[GattClientDevice]client端类,使用client端方法之前需要创建该类的实例进行操作。

示例:

let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');

bluetooth.BLE.getConnectedBLEDevices

getConnectedBLEDevices(): Array

获取和当前设备连接的BLE设备。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

返回值:

类型说明
Array返回当前设备作为Server端时连接BLE设备地址集合。

示例:

let result = bluetooth.BLE.getConnectedBLEDevices();

bluetooth.BLE.startBLEScan

startBLEScan(filters: Array, options?: ScanOptions): void

发起BLE扫描流程。

需要权限:ohos.permission.DISCOVER_BLUETOOTH;ohos.permission.MANAGE_BLUETOOTH;ohos.permission.LOCATION

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
filtersArray<[ScanFilter]>表示扫描结果过滤策略集合,如果不使用过滤的方式,该参数设置为null。
options[ScanOptions]表示扫描的参数配置,可选参数。

返回值:

示例:

function onReceiveEvent(data) {
    console.info('BLE scan device find result = '+ JSON.stringify(data));
}
bluetooth.BLE.on("BLEDeviceFind", onReceiveEvent);
bluetooth.BLE.startBLEScan(
    [{
        deviceId:"XX:XX:XX:XX:XX:XX",
        name:"test",
        serviceUuid:"00001888-0000-1000-8000-00805f9b34fb"
    }],
    {
        interval: 500,
        dutyMode: bluetooth.ScanDuty.SCAN_MODE_LOW_POWER,
        matchMode: bluetooth.MatchMode.MATCH_MODE_AGGRESSIVE,
    }
);

bluetooth.BLE.stopBLEScan

stopBLEScan(): void

停止BLE扫描流程。

需要权限:ohos.permission.DISCOVER_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

返回值:

示例:

bluetooth.BLE.stopBLEScan();

bluetooth.BLE.on(‘BLEDeviceFind’)

on(type: “BLEDeviceFind”, callback: Callback<Array>): void

订阅BLE设备发现上报事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"BLEDeviceFind"字符串,表示BLE设备发现事件。
callbackCallback<Array<[ScanResult]>>表示回调函数的入参,发现的设备集合。回调函数由用户创建通过该接口注册。

返回值:

示例:

function onReceiveEvent(data) {
    console.info('bluetooth device find = '+ JSON.stringify(data));
}
bluetooth.BLE.on('BLEDeviceFind', onReceiveEvent);

bluetooth.BLE.off(‘BLEDeviceFind’)

off(type: “BLEDeviceFind”, callback?: Callback<Array>): void

取消订阅BLE设备发现上报事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"BLEDeviceFind"字符串,表示BLE设备发现事件。
callbackCallback<Array<[ScanResult]>>表示取消订阅BLE设备发现事件上报。不填该参数则取消订阅该type对应的所有回调。

返回值:

示例:

function onReceiveEvent(data) {
    console.info('bluetooth device find = '+ JSON.stringify(data));
}
bluetooth.BLE.on('BLEDeviceFind', onReceiveEvent);
bluetooth.BLE.off('BLEDeviceFind', onReceiveEvent);

BaseProfile

profile基类。

getConnectionDevices8+

getConnectionDevices(): Array

获取已连接设备列表。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

返回值:

类型说明
Array返回已连接设备的地址列表。

示例:

let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE)
let retArray = a2dpSrc.getConnectionDevices();

getDeviceState8+

getDeviceState(device: string): ProfileConnectionState

获取设备profile的连接状态。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
devicestring远端设备地址。

返回值:

类型说明
[ProfileConnectionState]返回profile的连接状态。

示例:

let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE)
let ret = a2dpSrc.getDeviceState('XX:XX:XX:XX:XX:XX');

A2dpSourceProfile

使用A2dpSourceProfile方法之前需要创建该类的实例进行操作,通过getProfile()方法构造此实例。

connect8+

connect(device: string): boolean

发起设备的A2dp服务连接请求。

需要权限:ohos.permission.DISCOVER_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
devicestring远端设备地址。

返回值:

类型说明
boolean成功返回true,失败返回false。

示例:

let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE)
let ret = a2dpSrc.connect('XX:XX:XX:XX:XX:XX');

disconnect8+

disconnect(device: string): boolean

断开设备的a2dp服务连接。

需要权限:ohos.permission.DISCOVER_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
devicestring远端设备地址。

返回值:

类型说明
boolean成功返回true,失败返回false。

示例:

let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE);
let ret = a2dpSrc.disconnect('XX:XX:XX:XX:XX:XX');

on(‘connectionStateChange’)8+

on(type: “connectionStateChange”, callback: Callback<[StateChangeParam]>): void

订阅a2dp连接状态变化事件。

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"connectionStateChange"字符串,表示连接状态变化事件。
callbackCallback<[StateChangeParam]>表示回调函数的入参。

返回值:

示例:

function onReceiveEvent(data) {
    console.info('a2dp state = '+ JSON.stringify(data));
}
let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE);
a2dpSrc.on('connectionStateChange', onReceiveEvent);

off(‘connectionStateChange’)8+

off(type: “connectionStateChange”, callback?: Callback<[StateChangeParam]>): void

取消订阅a2dp连接状态变化事件。

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"connectionStateChange"字符串,表示连接状态变化事件。
callbackCallback<[StateChangeParam]>表示回调函数的入参。

返回值:

示例:

function onReceiveEvent(data) {
    console.info('a2dp state = '+ JSON.stringify(data));
}
let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE);
a2dpSrc.on('connectionStateChange', onReceiveEvent);
a2dpSrc.off('connectionStateChange', onReceiveEvent);

getPlayingState9+

getPlayingState(device: string): PlayingState

获取设备的播放状态。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
devicestring远端设备地址。

返回值:

类型说明
[PlayingState]远端设备的播放状态。

示例:

let a2dpSrc = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_A2DP_SOURCE);
let state = a2dpSrc.getPlayingState('XX:XX:XX:XX:XX:XX');

HandsFreeAudioGatewayProfile

使用HandsFreeAudioGatewayProfile方法之前需要创建该类的实例进行操作,通过getProfile()方法构造此实例。

connect8+

connect(device: string): boolean

连接设备的HFP服务。

需要权限:ohos.permission.DISCOVER_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
devicestring远端设备地址。

返回值:

类型说明
boolean成功返回true,失败返回false。

示例:

let hfpAg = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_HANDS_FREE_AUDIO_GATEWAY);
let ret = hfpAg.connect('XX:XX:XX:XX:XX:XX');

disconnect8+

disconnect(device: string): boolean

断开连接设备的HFP服务。

需要权限:ohos.permission.DISCOVER_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
devicestring远端设备地址。

返回值:

类型说明
boolean成功返回true,失败返回false。

示例:

let hfpAg = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_HANDS_FREE_AUDIO_GATEWAY);
let ret = hfpAg.disconnect('XX:XX:XX:XX:XX:XX');

on(‘connectionStateChange’)8+

on(type: “connectionStateChange”, callback: Callback<[StateChangeParam]>): void

订阅HFP连接状态变化事件。

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"connectionStateChange"字符串,表示连接状态变化事件。
callbackCallback<[StateChangeParam]>表示回调函数的入参。

返回值:

示例:

function onReceiveEvent(data) {
    console.info('hfp state = '+ JSON.stringify(data));
}
let hfpAg = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_HANDS_FREE_AUDIO_GATEWAY);
hfpAg.on('connectionStateChange', onReceiveEvent);

off(‘connectionStateChange’)8+

off(type: “connectionStateChange”, callback?: Callback<[StateChangeParam]>): void

取消订阅HFP连接状态变化事件。

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"connectionStateChange"字符串,表示连接状态变化事件。
callbackCallback<[StateChangeParam]>表示回调函数的入参。

返回值:

示例:

function onReceiveEvent(data) {
    console.info('hfp state = '+ JSON.stringify(data));
}
let hfpAg = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_HANDS_FREE_AUDIO_GATEWAY);
hfpAg.on('connectionStateChange', onReceiveEvent);
hfpAg.off('connectionStateChange', onReceiveEvent);

HidHostProfile

使用HidHostProfile方法之前需要创建该类的实例进行操作,通过getProfile()方法构造此实例。

connect9+

connect(device: string): boolean

连接设备的HidHost服务。

此接口为系统接口。

需要权限:ohos.permission.DISCOVER_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
devicestring远端设备地址。

返回值:

类型说明
boolean成功返回true,失败返回false。

示例:

let hidHostProfile = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_HID_HOST);
let ret = hidHostProfile.connect('XX:XX:XX:XX:XX:XX');

disconnect9+

disconnect(device: string): boolean

断开连接设备的HidHost服务。

此接口为系统接口。

需要权限:ohos.permission.DISCOVER_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
devicestring远端设备地址。

返回值:

类型说明
boolean成功返回true,失败返回false。

示例:

let hidHostProfile = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_HID_HOST);
let ret = hidHostProfile.disconnect('XX:XX:XX:XX:XX:XX');

on(‘connectionStateChange’)9+

on(type: “connectionStateChange”, callback: Callback<[StateChangeParam]>): void

订阅HidHost连接状态变化事件。

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"connectionStateChange"字符串,表示连接状态变化事件。
callbackCallback<[StateChangeParam]>表示回调函数的入参。

返回值:

示例:

function onReceiveEvent(data) {
    console.info('hidHost state = '+ JSON.stringify(data));
}
let hidHost = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_HID_HOST);
hidHost.on('connectionStateChange', onReceiveEvent);

off(‘connectionStateChange’)9+

off(type: “connectionStateChange”, callback?: Callback<[StateChangeParam]>): void

取消订阅HidHost连接状态变化事件。

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"connectionStateChange"字符串,表示连接状态变化事件。
callbackCallback<[StateChangeParam]>表示回调函数的入参。

返回值:

示例:

function onReceiveEvent(data) {
    console.info('hidHost state = '+ JSON.stringify(data));
}
let hidHost = bluetooth.getProfile(bluetooth.ProfileId.PROFILE_HID_HOST);
hidHost.on('connectionStateChange', onReceiveEvent);
hidHost.off('connectionStateChange', onReceiveEvent);

GattServer

server端类,使用server端方法之前需要创建该类的实例进行操作,通过createGattServer()方法构造此实例。

startAdvertising

startAdvertising(setting: AdvertiseSetting, advData: AdvertiseData, advResponse?: AdvertiseData): void

开始发送BLE广播。

需要权限:ohos.permission.DISCOVER_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
setting[AdvertiseSetting]BLE广播的相关参数。
advData[AdvertiseData]BLE广播包内容。
advResponse[AdvertiseData]BLE回复扫描请求回复响应。

返回值:

示例:

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 = bluetooth.BLE.createGattServer();
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
            }],
});

stopAdvertising

stopAdvertising(): void

停止发送BLE广播。

需要权限:ohos.permission.DISCOVER_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

返回值:

示例:

let server = bluetooth.BLE.createGattServer();
server.stopAdvertising();

addService

addService(service: GattService): boolean

server端添加服务。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
service[GattService]服务端的service数据。BLE广播的相关参数

返回值:

类型说明
boolean添加服务操作,成功返回true,否则返回false。

示例:

// 创建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 = bluetooth.BLE.createGattServer();
let ret = gattServer.addService(gattService);
if (ret) {
   console.log("add service successfully");
} else {
   console.log("add service failed");
}

removeService

removeService(serviceUuid: string): boolean

删除已添加的服务。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
serviceUuidstringservice的UUID,例如“00001810-0000-1000-8000-00805F9B34FB”。

返回值:

类型说明
boolean删除服务操作,成功返回true,否则返回false。

示例:

let server = bluetooth.BLE.createGattServer();
server.removeService('00001810-0000-1000-8000-00805F9B34FB');

close

close(): void

关闭服务端功能,去注册server在协议栈的注册,调用该接口后GattServer实例将不能再使用。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

示例:

let server = bluetooth.BLE.createGattServer();
server.close();

notifyCharacteristicChanged

notifyCharacteristicChanged(deviceId: string, notifyCharacteristic: NotifyCharacteristic): boolean

server端特征值发生变化时,主动通知已连接的client设备。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
deviceIdstring接收通知的client端设备地址,例如“XX:XX:XX:XX:XX:XX”。
notifyCharacteristic[NotifyCharacteristic]通知的特征值数据。

返回值:

类型说明
boolean通知操作,成功返回true,否则返回false。

示例:

// 创建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 = bluetooth.BLE.createGattServer();
server.notifyCharacteristicChanged('XX:XX:XX:XX:XX:XX', notifyCharacteristic);

sendResponse

sendResponse(serverResponse: ServerResponse): boolean

server端回复client端的读写请求。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
serverResponse[ServerResponse]server端回复的响应数据。

返回值:

类型说明
boolean回复响应操作,成功返回true,否则返回false。

示例:

/* 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 = bluetooth.BLE.createGattServer();
let ret = gattServer.sendResponse(serverResponse);
if (ret) {
  console.log('bluetooth sendResponse successfully');
} else {
  console.log('bluetooth sendResponse failed');
}

on(‘characteristicRead’)

on(type: “characteristicRead”, callback: Callback): void

server端订阅特征值读请求事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"characteristicRead"字符串,表示特征值读请求事件。
callbackCallback<[CharacteristicReadReq]>表示回调函数的入参,client端发送的读请求数据。

返回值:

示例:

let arrayBufferCCC = new ArrayBuffer(8);
let cccValue = new Uint8Array(arrayBufferCCC);
cccValue[0] = 1123;
function ReadCharacteristicReq(CharacteristicReadReq) {
  let deviceId = CharacteristicReadReq.deviceId;
  let transId = CharacteristicReadReq.transId;
  let offset = CharacteristicReadReq.offset;
  let characteristicUuid = CharacteristicReadReq.characteristicUuid;

  let serverResponse = {deviceId: deviceId, transId: transId, status: 0, offset: offset, value:arrayBufferCCC};
  
  let ret = gattServer.sendResponse(serverResponse);
  if (ret) {
    console.log('bluetooth sendResponse successfully');
  } else {
    console.log('bluetooth sendResponse failed');
  }
}

let gattServer = bluetooth.BLE.createGattServer();
gattServer.on("characteristicRead", ReadCharacteristicReq);

off(‘characteristicRead’)

off(type: “characteristicRead”, callback?: Callback): void

server端取消订阅特征值读请求事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"characteristicRead"字符串,表示特征值读请求事件。
callbackCallback<[CharacteristicReadReq]>表示取消订阅特征值读请求事件上报。不填该参数则取消订阅该type对应的所有回调。

返回值:

示例:

let gattServer = bluetooth.BLE.createGattServer();
gattServer.off("characteristicRead");

on(‘characteristicWrite’)

on(type: “characteristicWrite”, callback: Callback): void

server端订阅特征值写请求事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"characteristicWrite"字符串,表示特征值写请求事件。
callbackCallback<[CharacteristicWriteReq]>表示回调函数的入参,client端发送的写请求数据。

返回值:

示例:

let arrayBufferCCC = new ArrayBuffer(8);
let cccValue = new Uint8Array(arrayBufferCCC);
function WriteCharacteristicReq(CharacteristicWriteReq) {
  let deviceId = CharacteristicWriteReq.deviceId;
  let transId = CharacteristicWriteReq.transId;
  let offset = CharacteristicWriteReq.offset;
  let isPrep = CharacteristicWriteReq.isPrep;
  let needRsp = CharacteristicWriteReq.needRsp;
  let value =  new Uint8Array(CharacteristicWriteReq.value);
  let characteristicUuid = CharacteristicWriteReq.characteristicUuid;
  
  cccValue[0] = value[0];
  let serverResponse = {deviceId: deviceId, transId: transId, status: 0, offset: offset, value:arrayBufferCCC};
  
  let ret = gattServer.sendResponse(serverResponse);
  if (ret) {
    console.log('bluetooth sendResponse successfully');
  } else {
    console.log('bluetooth sendResponse failed');
  }
}

let gattServer = bluetooth.BLE.createGattServer();
gattServer.on("characteristicWrite", WriteCharacteristicReq);

off(‘characteristicWrite’)

off(type: “characteristicWrite”, callback?: Callback): void

server端取消订阅特征值写请求事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"characteristicWrite"字符串,表示特征值写请求事件。
callbackCallback<[CharacteristicWriteReq]>表示取消订阅特征值写请求事件上报。不填该参数则取消订阅该type对应的所有回调。

返回值:

示例:

let gattServer = bluetooth.BLE.createGattServer();
gattServer.off("characteristicWrite");

on(‘descriptorRead’)

on(type: “descriptorRead”, callback: Callback): void

server端订阅描述符读请求事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"descriptorRead"字符串,表示描述符读请求事件。
callbackCallback<[DescriptorReadReq]>表示回调函数的入参,client端发送的读请求数据。

返回值:

示例:

let arrayBufferDesc = new ArrayBuffer(8);
let descValue = new Uint8Array(arrayBufferDesc);
descValue[0] = 1101;
function ReadDescriptorReq(DescriptorReadReq) {
  let deviceId = DescriptorReadReq.deviceId;
  let transId = DescriptorReadReq.transId;
  let offset = DescriptorReadReq.offset;
  let descriptorUuid = DescriptorReadReq.descriptorUuid;

  let serverResponse = {deviceId: deviceId, transId: transId, status: 0, offset: offset, value:arrayBufferDesc};
  
  let ret = gattServer.sendResponse(serverResponse);
  if (ret) {
    console.log('bluetooth sendResponse successfully');
  } else {
    console.log('bluetooth sendResponse failed');
  }
}

let gattServer = bluetooth.BLE.createGattServer();
gattServer.on("descriptorRead", ReadDescriptorReq);

off(‘descriptorRead’)

off(type: “descriptorRead”, callback?: Callback): void

server端取消订阅描述符读请求事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"descriptorRead"字符串,表示描述符读请求事件。
callbackCallback<[DescriptorReadReq]>表示取消订阅描述符读请求事件上报。不填该参数则取消订阅该type对应的所有回调。

返回值:

示例:

let gattServer = bluetooth.BLE.createGattServer();
gattServer.off("descriptorRead");

on(‘descriptorWrite’)

on(type: “descriptorWrite”, callback: Callback): void

server端订阅描述符写请求事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"descriptorWrite"字符串,表示描述符写请求事件。
callbackCallback<[DescriptorWriteReq]>表示回调函数的入参,client端发送的写请求数据。

返回值:

示例:

let arrayBufferDesc = new ArrayBuffer(8);
let descValue = new Uint8Array(arrayBufferDesc);
function WriteDescriptorReq(DescriptorWriteReq) {
  let deviceId = DescriptorWriteReq.deviceId;
  let transId = DescriptorWriteReq.transId;
  let offset = DescriptorWriteReq.offset;
  let isPrep = DescriptorWriteReq.isPrep;
  let needRsp = DescriptorWriteReq.needRsp;
  let value = new Uint8Array(DescriptorWriteReq.value);
  let descriptorUuid = DescriptorWriteReq.descriptorUuid;

  descValue[0] = value[0];
  let serverResponse = {deviceId: deviceId, transId: transId, status: 0, offset: offset, value:arrayBufferDesc};
  
  let ret = gattServer.sendResponse(serverResponse);
  if (ret) {
    console.log('bluetooth sendResponse successfully');
  } else {
    console.log('bluetooth sendResponse failed');
  }
}

let gattServer = bluetooth.BLE.createGattServer();
gattServer.on("descriptorRead", WriteDescriptorReq);

off(‘descriptorWrite’)

off(type: “descriptorWrite”, callback?: Callback): void

server端取消订阅描述符写请求事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"descriptorWrite"字符串,表示描述符写请求事件。
callbackCallback<[DescriptorWriteReq]>表示取消订阅描述符写请求事件上报。不填该参数则取消订阅该type对应的所有回调。

返回值:

示例:

let gattServer = bluetooth.BLE.createGattServer();
gattServer.off("descriptorWrite");

on(‘connectStateChange’)

on(type: “connectStateChange”, callback: Callback): void

server端订阅BLE连接状态变化事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"connectStateChange"字符串,表示BLE连接状态变化事件。
callbackCallback<[BLEConnectChangedState]>表示回调函数的入参,连接状态。

返回值:

示例:

function Connected(BLEConnectChangedState) {
  let deviceId = BLEConnectChangedState.deviceId;
  let status = BLEConnectChangedState.state;
}

let gattServer = bluetooth.BLE.createGattServer();
gattServer.on("connectStateChange", Connected);

off(‘connectStateChange’)

off(type: “connectStateChange”, callback?: Callback): void

server端取消订阅BLE连接状态变化事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"connectStateChange"字符串,表示BLE连接状态变化事件。
callbackCallback<[BLEConnectChangedState]>表示取消订阅BLE连接状态变化事件。不填该参数则取消订阅该type对应的所有回调。

返回值:

示例:

let gattServer = bluetooth.BLE.createGattServer();
gattServer.off("connectStateChange");

GattClientDevice

client端类,使用client端方法之前需要创建该类的实例进行操作,通过createGattClientDevice(deviceId: string)方法构造此实例。

connect

connect(): boolean

client端发起连接远端蓝牙低功耗设备。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

返回值:

类型说明
boolean连接操作成功返回true,操作失败返回false。

示例:

let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let ret = device.connect();

disconnect

disconnect(): boolean

client端断开与远端蓝牙低功耗设备的连接。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

返回值:

类型说明
boolean断开连接操作,成功返回true,操作失败返回false。

示例:

let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let ret = device.disconnect();

close

close(): boolean

关闭客户端功能,注销client在协议栈的注册,调用该接口后[GattClientDevice]实例将不能再使用。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

返回值:

类型说明
boolean关闭操作,成功返回true,操作失败返回false。

示例:

let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let ret = device.close();

getServices

getServices(callback: AsyncCallback<Array>): void

client端获取蓝牙低功耗设备的所有服务,即服务发现 。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
callbackAsyncCallback<Array<[GattService]>>client进行服务发现,通过注册回调函数获取。

返回值:

示例:

// 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);
      }
  }
}

let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.connect();
device.getServices(getServices);

getServices

getServices(): Promise<Array>

client端获取蓝牙低功耗设备的所有服务,即服务发现。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

返回值:

类型说明
Promise<Array<[GattService]>>client进行服务发现,通过promise形式获取。

示例:

// Promise 模式
let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.connect();
device.getServices().then(result => {
    console.info("getServices successfully:" + JSON.stringify(result));
});

readCharacteristicValue

readCharacteristicValue(characteristic: BLECharacteristic, callback: AsyncCallback): void

client端读取蓝牙低功耗设备特定服务的特征值。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
characteristic[BLECharacteristic]待读取的特征值。
callbackAsyncCallback<[BLECharacteristic]>client读取特征值,通过注册回调函数获取。

返回值:

示例:

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 device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
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};

device.readCharacteristicValue(characteristic, readCcc);

readCharacteristicValue

readCharacteristicValue(characteristic: BLECharacteristic): Promise

client端读取蓝牙低功耗设备特定服务的特征值。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
characteristic[BLECharacteristic]待读取的特征值。

返回值:

类型说明
Promise<[BLECharacteristic]>client读取特征值,通过promise形式获取。

示例:

let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
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};

device.readCharacteristicValue(characteristic);

readDescriptorValue

readDescriptorValue(descriptor: BLEDescriptor, callback: AsyncCallback): void

client端读取蓝牙低功耗设备特定的特征包含的描述符。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
descriptor[BLEDescriptor]待读取的描述符。
callbackAsyncCallback<[BLECharacteristic]>client读取描述符,通过注册回调函数获取。

返回值:

示例:

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 device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
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};
device.readDescriptorValue(descriptor, readDesc);

readDescriptorValue

readDescriptorValue(descriptor: BLEDescriptor): Promise

client端读取蓝牙低功耗设备特定的特征包含的描述符。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
descriptor[BLEDescriptor]待读取的描述符。

返回值:

类型说明
Promise<[BLEDescriptor]>client读取描述符,通过promise形式获取。

示例:

let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
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};
device.readDescriptorValue(descriptor);

writeCharacteristicValue

writeCharacteristicValue(characteristic: BLECharacteristic): boolean

client端向低功耗蓝牙设备写入特定的特征值。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
characteristic[BLECharacteristic]蓝牙设备特征对应的二进制值及其它参数。

返回值:

类型说明
boolean写特征值操作成功返回true,操作失败返回false。

示例:

let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
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};
let retWriteCcc = device.writeCharacteristicValue(characteristic);
if (retWriteCcc) {
  console.log('write characteristic successfully');
} else {
  console.log('write characteristic failed');
}

writeDescriptorValue

writeDescriptorValue(descriptor: BLEDescriptor): boolean

client端向低功耗蓝牙设备特定的描述符写入二进制数据。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
descriptor[BLEDescriptor]蓝牙设备描述符的二进制值及其它参数。

返回值:

类型说明
boolean写描述符操作成功返回true,操作失败返回false。

示例:

let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
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};
let retWriteDesc = device.writeDescriptorValue(descriptor);
if (retWriteDesc) {
  console.log('bluetooth write descriptor successfully');
} else {
  console.log('bluetooth write descriptor failed');
}

setBLEMtuSize

setBLEMtuSize(mtu: number): boolean

client协商远端蓝牙低功耗设备的最大传输单元(Maximum Transmission Unit, MTU),调用[connect]接口连接成功后才能使用。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
mtunumber设置范围为22~512字节。

返回值:

类型说明
booleanMTU协商操作成功返回true,操作失败返回false。

示例:

let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.setBLEMtuSize(128);

setNotifyCharacteristicChanged

setNotifyCharacteristicChanged(characteristic: BLECharacteristic, enable: boolean): boolean

向服务端发送设置通知此特征值请求。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
characteristic[BLECharacteristic]蓝牙低功耗特征。
enableboolean启用接收notify设置为true,否则设置为false。

返回值:

类型说明
boolean设置操作成功返回true,操作失败返回false。

示例:

// 创建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 device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.setNotifyCharacteristicChanged(characteristic, false);

on(‘BLECharacteristicChange’)

on(type: “BLECharacteristicChange”, callback: Callback): void

订阅蓝牙低功耗设备的特征值变化事件。需要先调用setNotifyCharacteristicChanged接口才能接收server端的通知。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"BLECharacteristicChange"字符串,表示特征值变化事件。
callbackCallback<[BLECharacteristic]>表示蓝牙低功耗设备的特征值变化事件的回调函数。

返回值:

示例:

function CharacteristicChange(CharacteristicChangeReq) {
  let serviceUuid = CharacteristicChangeReq.serviceUuid;
  let characteristicUuid = CharacteristicChangeReq.characteristicUuid;
  let value = new Uint8Array(CharacteristicChangeReq.characteristicValue);
}
let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.on('BLECharacteristicChange', CharacteristicChange);

off(‘BLECharacteristicChange’)

off(type: “BLECharacteristicChange”, callback?: Callback): void

取消订阅蓝牙低功耗设备的特征值变化事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"BLECharacteristicChange"字符串,表示特征值变化事件。
callbackCallback<[BLECharacteristic]>表示取消订阅蓝牙低功耗设备的特征值变化事件。不填该参数则取消订阅该type对应的所有回调。

返回值:

示例:

let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.off('BLECharacteristicChange');

on(‘BLEConnectionStateChange’)

on(type: “BLEConnectionStateChange”, callback: Callback): void

client端订阅蓝牙低功耗设备的连接状态变化事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"BLEConnectionStateChange"字符串,表示连接状态变化事件。
callbackCallback<[BLEConnectChangedState]>表示连接状态,已连接或断开。

返回值:

示例:

function ConnectStateChanged(state) {
  console.log('bluetooth connect state changed');
  let connectState = state.state;
}
let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.on('BLEConnectionStateChange', ConnectStateChanged);

off(‘BLEConnectionStateChange’)

off(type: “BLEConnectionStateChange”, callback?: Callback): void

取消订阅蓝牙低功耗设备的连接状态变化事件。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
typestring填写"BLEConnectionStateChange"字符串,表示连接状态变化事件。
callbackCallback<[BLEConnectChangedState]>表示取消订阅蓝牙低功耗设备的连接状态变化事件。不填该参数则取消订阅该type对应的所有回调。

返回值:

示例:

let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.off('BLEConnectionStateChange');

getDeviceName

getDeviceName(callback: AsyncCallback): void

client获取远端蓝牙低功耗设备名。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
callbackAsyncCallbackclient获取对端server设备名,通过注册回调函数获取。

返回值:

示例:

// callback
let gattClient = bluetooth.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX");
let deviceName = gattClient.getDeviceName((err, data)=> {
    console.info('device name err ' + JSON.stringify(err));
    console.info('device name' + JSON.stringify(data));
})

getDeviceName

getDeviceName(): Promise

client获取远端蓝牙低功耗设备名。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

返回值:

类型说明
Promiseclient获取对端server设备名,通过promise形式获取。

示例:

// promise
let gattClient = bluetooth.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX");
let ret = device.connect();
let deviceName = gattClient.getDeviceName().then((data) => {
    console.info('device name' + JSON.stringify(data));
})

getRssiValue

getRssiValue(callback: AsyncCallback): void

client获取远端蓝牙低功耗设备的信号强度 (Received Signal Strength Indication, RSSI),调用[connect]接口连接成功后才能使用。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

参数:

参数名类型必填说明
callbackAsyncCallback返回信号强度,单位 dBm,通过注册回调函数获取。

返回值:

示例:

// callback
let gattClient = bluetooth.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX");
let ret = device.connect();
let rssi = gattClient.getRssiValue((err, data)=> {
    console.info('rssi err ' + JSON.stringify(err));
    console.info('rssi value' + JSON.stringify(data));
})

getRssiValue

getRssiValue(): Promise

client获取远端蓝牙低功耗设备的信号强度 (Received Signal Strength Indication, RSSI),调用[connect]接口连接成功后才能使用。

需要权限:ohos.permission.USE_BLUETOOTH

系统能力:SystemCapability.Communication.Bluetooth.Core。

返回值:

类型说明
Promise返回信号强度,单位 dBm,通过promise形式获取。

示例:

// promise
let gattClient = bluetooth.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX");
let rssi = gattClient.getRssiValue().then((data) => {
    console.info('rssi' + JSON.stringify(data));
})

ScanMode8+

枚举,扫描模式。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称默认值说明
SCAN_MODE_NONE0没有扫描模式。
SCAN_MODE_CONNECTABLE1可连接扫描模式。
SCAN_MODE_GENERAL_DISCOVERABLE2general发现模式。
SCAN_MODE_LIMITED_DISCOVERABLE3limited发现模式。
SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE4可连接general发现模式。
SCAN_MODE_CONNECTABLE_LIMITED_DISCOVERABLE5可连接limited发现模式。

BondState8+

枚举,配对状态。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称默认值说明
BOND_STATE_INVALID0无效的配对。
BOND_STATE_BONDING1正在配对。
BOND_STATE_BONDED2已配对。

SppOption8+

描述spp的配置参数。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
uuidstringspp单据的uuid。
secureboolean是否是安全通道。
type[SppType]Spp链路类型。

SppType8+

枚举,Spp链路类型。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称默认值说明
SPP_RFCOMM0表示rfcomm链路类型。

GattService

描述service的接口参数定义。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
serviceUuidstring特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。
isPrimaryboolean如果是主服务设置为true,否则设置为false。
characteristicsArray<[BLECharacteristic]>当前服务包含的特征列表。
includeServicesArray<[GattService]>当前服务依赖的其它服务。

BLECharacteristic

描述characteristic的接口参数定义 。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
serviceUuidstring特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。
characteristicUuidstring特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。
characteristicValueArrayBuffer特征对应的二进制值。
descriptorsArray<[BLEDescriptor]>特定特征的描述符列表。

BLEDescriptor

描述descriptor的接口参数定义 。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
serviceUuidstring特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。
characteristicUuidstring特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。
descriptorUuidstring描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。
descriptorValueArrayBuffer描述符对应的二进制值。

NotifyCharacteristic

描述server端特征值变化时发送的特征通知参数定义。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
serviceUuidstring特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。
characteristicUuidstring特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。
characteristicValueArrayBuffer特征对应的二进制值。
confirmboolean如果是notification则对端回复确认设置为true,如果是indication则对端不需要回复确认设置为false。

CharacteristicReadReq

描述server端订阅后收到的特征值读请求事件参数结构。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
deviceIdstring表示发送特征值读请求的远端设备地址,例如:“XX:XX:XX:XX:XX:XX”。
transIdnumber表示读请求的传输ID,server端回复响应时需填写相同的传输ID。
offsetnumber表示读特征值数据的起始位置。例如:k表示从第k个字节开始读,server端回复响应时需填写相同的offset。
characteristicUuidstring特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。
serviceUuidstring特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。

CharacteristicWriteReq

描述server端订阅后收到的特征值写请求事件参数结构。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
deviceIdstring表示发送特征值写请求的远端设备地址,例如:“XX:XX:XX:XX:XX:XX”。
transIdnumber表示写请求的传输ID,server端回复响应时需填写相同的传输ID。
offsetnumber表示写特征值数据的起始位置。例如:k表示从第k个字节开始写,server端回复响应时需填写相同的offset。
descriptorUuidstring表示描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。
characteristicUuidstring特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。
serviceUuidstring特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。

DescriptorReadReq

描述server端订阅后收到的描述符读请求事件参数结构。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
deviceIdstring表示发送描述符读请求的远端设备地址,例如:“XX:XX:XX:XX:XX:XX”。
transIdnumber表示读请求的传输ID,server端回复响应时需填写相同的传输ID。
offsetnumber表示读描述符数据的起始位置。例如:k表示从第k个字节开始读,server端回复响应时需填写相同的offset。
descriptorUuidstring表示描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。
characteristicUuidstring特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。
serviceUuidstring特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。

DescriptorWriteReq

描述server端订阅后收到的描述符写请求事件参数结构。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
deviceIdstring表示发送描述符写请求的远端设备地址,例如:“XX:XX:XX:XX:XX:XX”。
transIdnumber表示写请求的传输ID,server端回复响应时需填写相同的传输ID。
offsetnumber表示写描述符数据的起始位置。例如:k表示从第k个字节开始写,server端回复响应时需填写相同的offset。
isPrepboolean表示写请求是否立即执行。
needRspboolean表示是否要给client端回复响应。
valueArrayBuffer表示写入的描述符二进制数据。
descriptorUuidstring表示描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。
characteristicUuidstring特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。
serviceUuidstring特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。

ServerResponse

描述server端回复client端读/写请求的响应参数结构。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
deviceIdstring表示远端设备地址,例如:“XX:XX:XX:XX:XX:XX”。
transIdnumber表示请求的传输ID,与订阅的读/写请求事件携带的ID保持一致。
statusnumber表示响应的状态,设置为0即可,表示正常。
offsetnumber表示请求的读/写起始位置,与订阅的读/写请求事件携带的offset保持一致。
valueArrayBuffer表示回复响应的二进制数据。

BLEConnectChangedState

描述Gatt profile连接状态 。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
deviceIdstring表示远端设备地址,例如:“XX:XX:XX:XX:XX:XX”。
state[ProfileConnectionState]表示BLE连接状态的枚举。

ProfileConnectionState

枚举,蓝牙设备的profile连接状态。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称默认值说明
STATE_DISCONNECTED0表示profile已断连。
STATE_CONNECTING1表示profile正在连接。
STATE_CONNECTED2表示profile已连接。
STATE_DISCONNECTING3表示profile正在断连。

ScanFilter

扫描过滤参数。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
deviceIdstring表示过滤的BLE设备地址,例如:“XX:XX:XX:XX:XX:XX”。
namestring表示过滤的BLE设备名。
serviceUuidstring表示过滤包含该UUID服务的设备,例如:00001888-0000-1000-8000-00805f9b34fb。

ScanOptions

扫描的配置参数。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
intervalnumber表示扫描结果上报延迟时间,默认值为0。
dutyMode[ScanDuty]表示扫描模式,默认值为SCAN_MODE_LOW_POWER。
matchMode[MatchMode]表示硬件的过滤匹配模式,默认值为MATCH_MODE_AGGRESSIVE。

ScanDuty

枚举,扫描模式。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称默认值说明
SCAN_MODE_LOW_POWER0表示低功耗模式,默认值。
SCAN_MODE_BALANCED1表示均衡模式。
SCAN_MODE_LOW_LATENCY2表示低延迟模式。

MatchMode

枚举,硬件过滤匹配模式。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称默认值说明
MATCH_MODE_AGGRESSIVE1表示硬件上报扫描结果门限较低,比如扫描到的功率较低或者一段时间扫描到的次数较少也触发上报,默认值。
MATCH_MODE_STICKY2表示硬件上报扫描结果门限较高,更高的功率门限以及扫描到多次才会上报。

ScanResult

扫描结果上报数据。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
deviceIdstring表示扫描到的设备地址,例如:“XX:XX:XX:XX:XX:XX”。
rssinumber表示扫描到的设备的rssi值。
dataArrayBuffer表示扫描到的设备发送的广播包。

BluetoothState

枚举,蓝牙开关状态。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称默认值说明
STATE_OFF0表示蓝牙已关闭。
STATE_TURNING_ON1表示蓝牙正在打开。
STATE_ON2表示蓝牙已打开。
STATE_TURNING_OFF3表示蓝牙正在关闭。
STATE_BLE_TURNING_ON4表示蓝牙正在打开LE-only模式。
STATE_BLE_ON5表示蓝牙正处于LE-only模式。
STATE_BLE_TURNING_OFF6表示蓝牙正在关闭LE-only模式。

AdvertiseSetting

描述蓝牙低功耗设备发送广播的参数。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
intervalnumber表示广播间隔,最小值设置32个slot表示20ms,最大值设置16384个slot,默认值设置为1600个slot表示1s。
txPowernumber表示发送功率,最小值设置-127,最大值设置1,默认值设置-7,单位dbm。
connectableboolean表示是否是可连接广播,默认值设置为true。

AdvertiseData

描述BLE广播数据包的内容。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
serviceUuidsArray表示要广播的服务 UUID 列表。
manufactureDataArray<[ManufactureData]>表示要广播的广播的制造商信息列表。
serviceDataArray<[ServiceData]>表示要广播的服务数据列表。

ManufactureData

描述BLE广播数据包的内容。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
manufactureIdArray表示制造商的ID,由蓝牙SIG分配。
manufactureValueArrayBuffer表示制造商发送的制造商数据。

ServiceData

描述广播包中服务数据内容。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
serviceUuidstring表示服务的UUID。
serviceValueArrayBuffer表示服务数据。

PinRequiredParam8+

描述配对请求参数。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
deviceIdstring表示要配对的设备ID。
pinCodestring表示要配对的密钥。

StateChangeParam8+

描述profile状态改变参数。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
deviceIdstring表示蓝牙设备地址。
state[ProfileConnectionState]表示蓝牙设备的profile连接状态。

DeviceClass8+

描述蓝牙设备的类别。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称参数类型可读可写说明
majorClass[MajorClass]表示蓝牙设备主要类别的枚举。
majorMinorClass[MajorMinorClass]表示主要次要蓝牙设备类别的枚举。
classOfDevicenumber表示设备类别。

MajorClass8+

枚举,蓝牙设备主要类别。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称默认值说明
MAJOR_MISC0x0000表示杂项设备。
MAJOR_COMPUTER0x0100表示计算机设备。
MAJOR_PHONE0x0200表示手机设备。
MAJOR_NETWORKING0x0300表示网络设备。
MAJOR_AUDIO_VIDEO0x0400表示音频和视频设备。
MAJOR_PERIPHERAL0x0500表示外围设备。
MAJOR_IMAGING0x0600表示成像设备。
MAJOR_WEARABLE0x0700表示可穿戴设备。
MAJOR_TOY0x0800表示玩具设备。
MAJOR_HEALTH0x0900表示健康设备。
MAJOR_UNCATEGORIZED0x1F00表示未分类设备。

MajorMinorClass8+

枚举,主要次要蓝牙设备类别。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称默认值说明
COMPUTER_UNCATEGORIZED0x0100表示未分类计算机设备。
COMPUTER_DESKTOP0x0104表示台式计算机设备。
COMPUTER_SERVER0x0108表示服务器设备。
COMPUTER_LAPTOP0x010C表示便携式计算机设备。
COMPUTER_HANDHELD_PC_PDA0x0110表示手持式计算机设备。
COMPUTER_PALM_SIZE_PC_PDA0x0114表示掌上电脑设备。
COMPUTER_WEARABLE0x0118表示可穿戴计算机设备。
COMPUTER_TABLET0x011C表示平板电脑设备。
PHONE_UNCATEGORIZED0x0200表示未分类手机设备。
PHONE_CELLULAR0x0204表示便携式手机设备。
PHONE_CORDLESS0x0208表示无线电话设备。
PHONE_SMART0x020C表示智能手机设备。
PHONE_MODEM_OR_GATEWAY0x0210表示调制解调器或网关手机设备。
PHONE_ISDN0x0214表示ISDN手机设备。
NETWORK_FULLY_AVAILABLE0x0300表示网络完全可用设备。
NETWORK_1_TO_17_UTILIZED0x0320表示使用网络1到17设备。
NETWORK_17_TO_33_UTILIZED0x0340表示使用网络17到33设备。
NETWORK_33_TO_50_UTILIZED0x0360表示使用网络33到50设备。
NETWORK_60_TO_67_UTILIZED0x0380表示使用网络60到67设备。
NETWORK_67_TO_83_UTILIZED0x03A0表示使用网络67到83设备。
NETWORK_83_TO_99_UTILIZED0x03C0表示使用网络83到99设备。
NETWORK_NO_SERVICE0x03E0表示网络无服务设备。
AUDIO_VIDEO_UNCATEGORIZED0x0400表示未分类音频视频设备。
AUDIO_VIDEO_WEARABLE_HEADSET0x0404表示可穿戴式音频视频设备。
AUDIO_VIDEO_HANDSFREE0x0408表示免提音频视频设备。
AUDIO_VIDEO_MICROPHONE0x0410表示麦克风音频视频设备。
AUDIO_VIDEO_LOUDSPEAKER0x0414表示扬声器音频视频设备。
AUDIO_VIDEO_HEADPHONES0x0418表示头戴式音频视频设备。
AUDIO_VIDEO_PORTABLE_AUDIO0x041C表示便携式音频视频设备。
AUDIO_VIDEO_CAR_AUDIO0x0420表示汽车音频视频设备。
AUDIO_VIDEO_SET_TOP_BOX0x0424表示机顶盒音频视频设备。
AUDIO_VIDEO_HIFI_AUDIO0x0428表示高保真音响设备。
AUDIO_VIDEO_VCR0x042C表示录像机音频视频设备。
AUDIO_VIDEO_VIDEO_CAMERA0x0430表示照相机音频视频设备。
AUDIO_VIDEO_CAMCORDER0x0434表示摄像机音频视频设备。
AUDIO_VIDEO_VIDEO_MONITOR0x0438表示监视器音频视频设备。
AUDIO_VIDEO_VIDEO_DISPLAY_AND_LOUDSPEAKER0x043C表示视频显示器和扬声器设备。
AUDIO_VIDEO_VIDEO_CONFERENCING0x0440表示音频视频会议设备。
AUDIO_VIDEO_VIDEO_GAMING_TOY0x0448表示游戏玩具音频视频设备。
PERIPHERAL_NON_KEYBOARD_NON_POINTING0x0500表示非键盘非指向外围设备。
PERIPHERAL_KEYBOARD0x0540表示外设键盘设备。
PERIPHERAL_POINTING_DEVICE0x0580表示定点装置外围设备。
PERIPHERAL_KEYBOARD_POINTING0x05C0表示键盘指向外围设备。
PERIPHERAL_UNCATEGORIZED0x0500表示未分类外围设备。
PERIPHERAL_JOYSTICK0x0504表示周边操纵杆设备。
PERIPHERAL_GAMEPAD0x0508表示周边游戏板设备。
PERIPHERAL_REMOTE_CONTROL0x05C0表示远程控制外围设备。
PERIPHERAL_SENSING_DEVICE0x0510表示外围传感设备设备。
PERIPHERAL_DIGITIZER_TABLET0x0514表示外围数字化仪平板电脑设备。
PERIPHERAL_CARD_READER0x0518表示外围读卡器设备。
PERIPHERAL_DIGITAL_PEN0x051C表示外设数码笔设备。
PERIPHERAL_SCANNER_RFID0x0520表示射频识别扫描仪外围设备。
PERIPHERAL_GESTURAL_INPUT0x0522表示手势输入外围设备。
IMAGING_UNCATEGORIZED0x0600表示未分类的图像设备。
IMAGING_DISPLAY0x0610表示图像显示设备。
IMAGING_CAMERA0x0620表示成像照相机设备。
IMAGING_SCANNER0x0640表示成像扫描仪设备。
IMAGING_PRINTER0x0680表示成像打印机设备。
WEARABLE_UNCATEGORIZED0x0700表示未分类的可穿戴设备。
WEARABLE_WRIST_WATCH0x0704表示可穿戴腕表设备。
WEARABLE_PAGER0x0708表示可穿戴寻呼机设备。
WEARABLE_JACKET0x070C表示夹克可穿戴设备。
WEARABLE_HELMET0x0710表示可穿戴头盔设备。
WEARABLE_GLASSES0x0714表示可穿戴眼镜设备。
TOY_UNCATEGORIZED0x0800表示未分类的玩具设备。
TOY_ROBOT0x0804表示玩具机器人设备。
TOY_VEHICLE0x0808表示玩具车设备。
TOY_DOLL_ACTION_FIGURE0x080C表示人形娃娃玩具设备。
TOY_CONTROLLER0x0810表示玩具控制器设备。
TOY_GAME0x0814表示玩具游戏设备。
HEALTH_UNCATEGORIZED0x0900表示未分类健康设备。
HEALTH_BLOOD_PRESSURE0x0904表示血压健康设备。
HEALTH_THERMOMETER0x0908表示温度计健康设备。
HEALTH_WEIGHING0x090C表示体重健康设备。
HEALTH_GLUCOSE0x0910表示葡萄糖健康设备。
HEALTH_PULSE_OXIMETER0x0914表示脉搏血氧仪健康设备。
HEALTH_PULSE_RATE0x0918表示脉搏率健康设备。
HEALTH_DATA_DISPLAY0x091C表示数据显示健康设备。
HEALTH_STEP_COUNTER0x0920表示阶梯计数器健康设备。
HEALTH_BODY_COMPOSITION_ANALYZER0x0924表示身体成分分析仪健康设备。
HEALTH_PEAK_FLOW_MOITOR0x0928表示湿度计健康设备。
HEALTH_MEDICATION_MONITOR0x092C表示药物监视仪健康设备。
HEALTH_KNEE_PROSTHESIS0x0930表示膝盖假肢健康设备。
HEALTH_ANKLE_PROSTHESIS0x0934表示脚踝假肢健康设备。
HEALTH_GENERIC_HEALTH_MANAGER0x0938表示通用健康管理设备。
HEALTH_PERSONAL_MOBILITY_DEVICE0x093C表示个人移动健康设备。

PlayingState8+

枚举,蓝牙A2DP 播放状态。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称默认值说明
STATE_NOT_PLAYING0x0000表示未播放。
STATE_PLAYING0x0001表示正在播放。

ProfileId8+

蓝牙profile枚举,API9新增PROFILE_HID_HOST。

系统能力:SystemCapability.Communication.Bluetooth.Core。

名称默认值说明
PROFILE_A2DP_SOURCE0x0001表示A2DP profile。
PROFILE_HANDS_FREE_AUDIO_GATEWAY0x0004表示HFP profile。
PROFILE_HID_HOST9+0x0006表示HID profile。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/724692.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PCB设计隐藏的陷进

1、BGA芯片的开窗和过油设计。 加工工艺中&#xff0c;范式过孔都需要盖油设计&#xff0c;实心焊盘需要开窗设计&#xff0c;坚决不能盖油。 2、通孔设计的互联连通性 比如H3芯片的wifi设计&#xff0c;实际上是没有联通的&#xff0c;虽然四层板的中间层有焊盘&#xff0c;但…

复旦大学:将推出至少100门AI领域课程

B站&#xff1a;啥都会一点的研究生公众号&#xff1a;啥都会一点的研究生 最近AI圈又发生了啥&#xff1f; 复旦大学&#xff1a;将在下一个学年推出至少100门AI领域课程 复旦大学召开2024年招生培养政策发布会&#xff0c;公布今年本科招生培养政策亮点。从今年秋季学期开…

【黑马TS】学习资料Day4

五、在 React 中使用 TypeScript 现在&#xff0c;我们已经掌握了 TS 中基础类型、高级类型的使用了。但是&#xff0c;如果要在前端项目开发中使用 TS&#xff0c;还需要掌握 React、Vue、Angular 等这些库或框架中提供的 API 的类型&#xff0c;以及在 TS 中是如何使用的。 …

ARCGIS 如何对河流等线条图形进行Smooth处理——具有多个断点高阶版

1.线转点折点&#xff08;注意&#xff01;很重要&#xff0c;不是线转点&#xff09; 2.点转线步骤 ## 3 线的融合 2.1 新建Filed 》短精度类型》利用选择工具的 线文件。全选同一条河流点&#xff0c;进入Tabel的选择界面。给同一条河赋值同一个值。 大功告成&#xff01;…

upload-labs第十三关教程

upload-labs第十三关教程 第十三关一、源代码分析代码审计 二、绕过分析1&#xff09;0x00绕过a.上传eval.pngb.使用burpsuite进行拦截修改之前&#xff1a;修改之后&#xff1a;进入hex模块&#xff1a; c.放包上传成功&#xff1a; d.使用中国蚁剑进行连接 2&#xff09;%00绕…

amov无人机连接;+数据传输;啊啊啊啊啊

socket传输数据: 局域网连接 连接---通信(命令行直接;)--- 传输数据(socket)--传输内容:launch文件; qgc连接; 1.局域网下的通信 1.1 局域网 厂家提供的方式是通过Homer图数传工具(硬件)构建的amov局域网实现通信连接. 好处是通信距离足够长,支持150m;坏处是"局部&qu…

SpringBoot配置第三方专业缓存技术Redis

Redis缓存技术 Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的内存中数据结构存储系统&#xff0c;通常用作数据库、缓存和消息中间件。它支持多种数据结构&#xff0c;如字符串、哈希表、列表、集合、有序集合等&#xff0c;并提供了丰富的功能和灵活的…

用Selenium自动化Web应用测试!

在开发和维护Web应用时&#xff0c;测试是确保应用正常运行的关键环节。手动测试不仅费时费力&#xff0c;而且容易出错。而通过使用Selenium&#xff0c;程序员可以轻松模拟用户交互、验证页面元素&#xff0c;从而自动化测试过程&#xff0c;提升测试效率和准确性。 解决的问…

【TB作品】MSP430G2553,单片机,口袋板, 多路温度巡回检测仪的设计

题7 多路温度巡回检测仪的设计 设计一个多路温度检测仪&#xff0c;共有8个测温点&#xff0c;每个点连续检测8次&#xff0c;以平均值代表该点温度&#xff0c;并轮流在LED显示器上显示。测试检测元件为铂热电阻Pt1000, 温度测量范围为100℃ ——500℃&#xff0c;测量精度为1…

用LoRA微调 Llama 2:定制大型语言模型进行问答

Fine-tune Llama 2 with LoRA: Customizing a large language model for question-answering — ROCm Blogs (amd.com) 在这篇博客中&#xff0c;我们将展示如何在AMD GPU上使用ROCm对Llama 2进行微调。我们采用了低秩适配大型语言模型(LoRA)来克服内存和计算限制&#xff0c;…

Chatgpt教我打游戏攻略

宝可梦朱 我在玩宝可梦朱的时候&#xff0c;我的同行队伍里有黏美儿&#xff0c;等级为65&#xff0c;遇到了下雨天但是没有进化&#xff0c;为什么呢&#xff1f; 黏美儿&#xff08;Goomy&#xff09;要进化为黏美龙&#xff08;Goodra&#xff09;&#xff0c;需要满足以下…

金蝶BI方案与奥威BI:智能、高效的数据分析组合

在当今数据驱动的时代&#xff0c;企业对于快速、准确、全面的数据分析需求日益增长。金蝶BI方案和奥威BI SaaS平台正是为满足这一需求而精心打造的智能数据分析工具。 方案见效快 金蝶BI方案以其高效的数据处理能力&#xff0c;能够快速地将海量数据转化为有价值的信息。通过…

港股全面大反攻即将开始!

港股三大指数高开高走&#xff0c;截至发稿&#xff0c;恒指涨2.87%。消费电子普遍开始盘整&#xff0c;但科网股迎来全面反弹&#xff0c;恒指在18000附近连续整固之后&#xff0c;今日似乎迎来了反转契机。 招银国际表示&#xff0c;回顾年初至今的中国互联网板块表现及行业…

【最新鸿蒙应用开发】——关于鸿蒙MVVM模式的理解

MVVM模式 MVVM&#xff08;Model-View-ViewModel&#xff09;是一种软件设计模式&#xff0c;主要用于分离应用程序的用户界面&#xff08;UI&#xff09;和业务逻辑。这种模式可以帮助开发者更高效地开发和管理复杂的用户界面。 程序的状态数据通常包含了数组、对象&#xff0…

数据资产:打破数据孤岛,实现数据互联互通,构建企业智能化转型的重要桥梁。通过高效整合与利用数据资源,推动企业决策的科学化、精准化,助力企业迈向智能化新时代

目录 一、引言 二、数据孤岛现象及其影响 三、打破数据孤岛&#xff0c;实现数据互联互通 1、制定统一的数据标准和管理规范 2、建设统一的数据平台 3、推广数据共享和开放文化 四、数据资产在智能化转型中的重要作用 1、推动企业决策的科学化、精准化 2、优化企业运营…

LoginGUI.java

LoginGUI.java 完成效果如下图&#xff1a; CODE Summary: This code sets up a login GUI using Swing. It defines a LoginGUI class extending JFrame. The constructor initializes the GUI components and sets up event listeners. The event_login method handles…

【DAMA】掌握数据管理核心:CDGA考试指南

引言&#xff1a;        在当今快速发展的数字化世界中&#xff0c;数据已成为组织最宝贵的资产之一。有效的数据管理不仅能够驱动业务决策&#xff0c;还能提升竞争力和市场适应性。DAMA国际一直致力于数据管理和数字化的研究、实践及相关知识体系的建设。秉承公益、志愿…

2024年一建要通关,这300道题必刷!

​一级建造师备考的过程&#xff0c;就是不断地消灭错题的过程! 考试100教研团队为大家编写了一套《2024年一级建造师易考易错300题》。考前冲刺期错题集就是你涨粉的法宝,将错题原因反复检测&#xff0c;真正掌握好错题点和题型解题核心得分要点才是提分关键&#xff01; 明确…

最好用的智能猫砂盆存在吗?自用分享智能猫砂盆测评!

在现代都市的忙碌生活中&#xff0c;作为一名上班族&#xff0c;经常因为需要加班或频繁出差而忙碌得不可开交。急匆匆地出门&#xff0c;却忘了给猫咪及时铲屎。但是大家要知道&#xff0c;不及时清理猫砂盆会让猫咪感到不适&#xff0c;还会引发各种健康问题&#xff0c;如泌…

程序员失业了,你可以做这些事情

这篇文章&#xff0c;我们讲&#xff0c;你先别带入自己哈&#xff0c;如果失业了&#xff0c;放心吧&#xff0c;你那么有上进心&#xff0c;不会失业的。咱就是说&#xff0c;如果万一失业了&#xff0c;你可以做这些事情。 1 体力好的铁人三项 &#x1f469;‍&#x1f3e…