ffc45d40创建于 2024年11月29日历史提交

@ohos.bluetooth.baseProfile (蓝牙baseProfile模块)

baseProfile模块提供了基础的profile方法。

说明:

本模块首批接口从API version 13开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

依赖权限

iOS平台

**说明:**Xcode项目里存在蓝牙模块任意一个库(libbluetooth_ble、libbluetooth_a2dp、libbluetooth_access、libbluetooth_connection、libbluetooth_common)时,需要配置蓝牙权限。如果没有配置蓝牙权限会导致运行异常

**配置方法:**在Xcode中右击项目中的info.plist,选择Open As > Source Code,在plist标签中加入NSBluetoothAlwaysUsageDescription。

示例如下:

<plist version="1.0">
<dict>
    <key>NSBluetoothAlwaysUsageDescription</key>
    <string>获取蓝牙权限描述文案</string>
</dict>
</plist>

导入模块

import baseProfile from '@ohos.bluetooth.baseProfile';

StateChangeParam

描述profile状态改变参数。

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

名称 类型 可读 可写 说明 Android平台 iOS平台
deviceId string 表示蓝牙设备地址。 支持 支持
state ProfileConnectionState 表示蓝牙设备的profile连接状态。 支持 支持
cause12+ DisconnectCause 表示连接失败的原因。 支持 支持

DisconnectCause12+

枚举,定义连接失败原因。

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

名称 说明 Android平台 iOS平台
USER_DISCONNECT 0 用户主动断开连接。 支持 支持

baseProfile.getConnectedDevices

getConnectedDevices(): Array<string>

获取已连接设备列表。

需要权限:ohos.permission.ACCESS_BLUETOOTH

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

支持平台: Android、iOS

返回值:

类型 说明
Array<string> 返回当前已连接设备的地址。基于信息安全考虑,此处获取的设备地址为随机MAC地址。配对成功后,该地址不会变更;已配对设备取消配对后重新扫描或蓝牙服务下电时,该随机地址会变更。
iOS只返回当前最新连接的一个设备地址。

错误码

以下错误码的详细介绍请参见蓝牙服务错误码

错误码ID 错误信息
201 Permission denied.
801 Capability not supported.
2900001 Service stopped.
2900003 Bluetooth disabled.
2900099 Operation failed.

示例:

import a2dp from '@ohos.bluetooth.a2dp';
import baseProfile from '@ohos.bluetooth.baseProfile';
import { BusinessError } from '@ohos.base';

try {
    let a2dpSrc = a2dp.createA2dpSrcProfile();
    let retArray = a2dpSrc.getConnectedDevices();
} catch (err) {
    console.error("errCode:" + (err as BusinessError).code + ",errMessage:" + (err as BusinessError).message);
}

baseProfile.getConnectionState

getConnectionState(deviceId: string): ProfileConnectionState

获取设备profile的连接状态。

需要权限:ohos.permission.ACCESS_BLUETOOTH

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

支持平台: Android、iOS

参数:

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

返回值:

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

错误码

以下错误码的详细介绍请参见蓝牙服务错误码

错误码ID 错误信息
201 Permission denied.
401 Invalid parameter. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3. Parameter verification failed.
801 Capability not supported.
2900001 Service stopped.
2900003 Bluetooth disabled.
2900099 Operation failed.

示例:

import a2dp from '@ohos.bluetooth.a2dp';
import baseProfile from '@ohos.bluetooth.baseProfile';
import { BusinessError } from '@ohos.base';

try {
    let a2dpSrc = a2dp.createA2dpSrcProfile();
    let ret = a2dpSrc.getConnectionState('XX:XX:XX:XX:XX:XX');
} catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

baseProfile.on('connectionStateChange')

on(type: 'connectionStateChange', callback: Callback<StateChangeParam>): void

订阅连接状态变化事件。使用Callback异步回调。

需要权限:ohos.permission.ACCESS_BLUETOOTH

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

支持平台: Android、iOS

参数:

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

错误码

以下错误码的详细介绍请参见蓝牙服务错误码

错误码ID 错误信息
201 Permission denied.
401 Invalid parameter. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3. Parameter verification failed.
801 Capability not supported.

示例:

import a2dp from '@ohos.bluetooth.a2dp';
import baseProfile from '@ohos.bluetooth.baseProfile';
import { BusinessError } from '@ohos.base';

function onReceiveEvent(data: baseProfile.StateChangeParam) {
  console.info('a2dp state = '+ JSON.stringify(data));
}
try {
  let a2dpSrc = a2dp.createA2dpSrcProfile();
  a2dpSrc.on('connectionStateChange', onReceiveEvent);
} catch (err) {
  console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

baseProfile.off('connectionStateChange')

off(type: 'connectionStateChange', callback?: Callback<StateChangeParam>): void

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

需要权限:ohos.permission.ACCESS_BLUETOOTH

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

支持平台: Android、iOS

参数:

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

错误码

以下错误码的详细介绍请参见蓝牙服务错误码

错误码ID 错误信息
201 Permission denied.
401 Invalid parameter. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3. Parameter verification failed.
801 Capability not supported.

示例:

import a2dp from '@ohos.bluetooth.a2dp';
import baseProfile from '@ohos.bluetooth.baseProfile';
import { BusinessError } from '@ohos.base';

function onReceiveEvent(data: baseProfile.StateChangeParam) {
  console.info('a2dp state = '+ JSON.stringify(data));
}
try {
  let a2dpSrc = a2dp.createA2dpSrcProfile();
  a2dpSrc.off('connectionStateChange', onReceiveEvent);
} catch (err) {
  console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}