openharmony 鸿蒙 js-apis-bluetooth-a2dp-sys

2025-06-12 浏览 (1)

@ohos.bluetooth.a2dp (蓝牙a2dp模块)(系统接口)

a2dp模块提供了访问蓝牙音频接口的方法。

说明:

本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 当前页面仅包含本模块的系统接口,其他公开接口参见@ohos.bluetooth.a2dp (蓝牙a2dp模块)

导入模块

import { a2dp } from '@kit.ConnectivityKit';

connect

connect(deviceId: string): void

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

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESS_BLUETOOTH

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

参数:

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

错误码

以下错误码的详细介绍请参见通用错误码说明文档蓝牙服务子系统错误码

错误码ID错误信息
201Permission denied.
202Non-system applications are not allowed to use system APIs.
401Invalid parameter. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3. Parameter verification failed.
801Capability not supported.
2900001Service stopped.
2900003Bluetooth disabled.
2900004Profile not supported.
2900099Operation failed.

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
try {
    let a2dpSrc = a2dp.createA2dpSrcProfile();
    a2dpSrc.connect('XX:XX:XX:XX:XX:XX');
} catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

disconnect

disconnect(deviceId: string): void

断开设备的a2dp服务连接。

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESS_BLUETOOTH

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

参数:

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

错误码

以下错误码的详细介绍请参见通用错误码说明文档蓝牙服务子系统错误码

错误码ID错误信息
201Permission denied.
202Non-system applications are not allowed to use system APIs.
401Invalid parameter. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3. Parameter verification failed.
801Capability not supported.
2900001Service stopped.
2900003Bluetooth disabled.
2900004Profile not supported.
2900099Operation failed.

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
try {
    let a2dpSrc = a2dp.createA2dpSrcProfile();
    a2dpSrc.disconnect('XX:XX:XX:XX:XX:XX');
} catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

isAbsoluteVolumeSupported11+

isAbsoluteVolumeSupported(deviceId: string, callback: AsyncCallback<boolean>): void

获取设备是否支持绝对音量能力。使用Callback异步回调。

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESS_BLUETOOTH

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

参数:

参数名类型必填说明
deviceIdstring远端设备地址。
callbackAsyncCallback<boolean>回调函数。当接口调用返回成功,err为undefined,data为获取到的设备是否支持绝对音量结果;否则为错误对象。

错误码

以下错误码的详细介绍请参见通用错误码说明文档蓝牙服务子系统错误码

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

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
try {
    let a2dpSrc = a2dp.createA2dpSrcProfile();
    a2dpSrc.isAbsoluteVolumeSupported('XX:XX:XX:XX:XX:XX', (err, supported) => {
        console.info('device support absolute volume ' + supported);
    });
} catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

isAbsoluteVolumeSupported11+

isAbsoluteVolumeSupported(deviceId: string): Promise<boolean>

获取设备是否支持绝对音量能力。使用Promise异步回调。

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESS_BLUETOOTH

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

参数:

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

返回值:

类型说明
Promise<boolean>Promise对象。返回true表示设备支持绝对音量能力;返回false表示设备不支持绝对音量能力。

错误码

以下错误码的详细介绍请参见通用错误码说明文档蓝牙服务子系统错误码

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

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
try {
    let a2dpSrc = a2dp.createA2dpSrcProfile();
    a2dpSrc.isAbsoluteVolumeSupported('XX:XX:XX:XX:XX:XX').then((supported) => {
        console.info('device support absolute volume ' + supported);
    });
} catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

isAbsoluteVolumeEnabled11+

isAbsoluteVolumeEnabled(deviceId: string, callback: AsyncCallback<boolean>): void

获取设备绝对音量能力是否开启。需要在设备支持绝对音量的情况下(参考isAbsoluteVolumeSupported),再获取设备绝对音量能力是否开启。使用Callback异步回调。

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESS_BLUETOOTH

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

参数:

参数名类型必填说明
deviceIdstring远端设备地址。
callbackAsyncCallback<boolean>回调函数。当接口调用返回成功,err为undefined,data为获取到的绝对音量能力开启结果,true表示设备支持绝对音量能力,返回false表示设备不支持绝对音量能力;否则为错误对象。

错误码

以下错误码的详细介绍请参见通用错误码说明文档蓝牙服务子系统错误码

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

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
try {
    let a2dpSrc = a2dp.createA2dpSrcProfile();
    a2dpSrc.isAbsoluteVolumeEnabled('XX:XX:XX:XX:XX:XX', (err, enabled) => {
        console.info('device absolute volume enable ' + enabled);
    });
} catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

isAbsoluteVolumeEnabled11+

isAbsoluteVolumeEnabled(deviceId: string): Promise<boolean>

获取设备绝对音量能力是否开启。需要在设备支持绝对音量的情况下(参考isAbsoluteVolumeSupported),再获取设备绝对音量能力是否开启。使用Promise异步回调。

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESS_BLUETOOTH

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

参数:

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

返回值:

类型说明
Promise<boolean>Promise对象。返回true表示设备绝对音量能力开启;返回false表示设备绝对音量能力未开启。

错误码

以下错误码的详细介绍请参见通用错误码说明文档蓝牙服务子系统错误码

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

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
try {
    let a2dpSrc = a2dp.createA2dpSrcProfile();
    a2dpSrc.isAbsoluteVolumeEnabled('XX:XX:XX:XX:XX:XX').then((enabled) => {
        console.info('device absolute volume enable ' + enabled);
    });
} catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

enableAbsoluteVolume11+

enableAbsoluteVolume(deviceId: string, callback: AsyncCallback<void>): void

开启设备绝对音量能力。需要在设备支持绝对音量的情况下(参考isAbsoluteVolumeSupported),再开启设备绝对音量能力。使用Callback异步回调。

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESS_BLUETOOTH 和 ohos.permission.MANAGE_BLUETOOTH

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

参数:

参数名类型必填说明
deviceIdstring远端设备地址。
callbackAsyncCallback<void>回调函数。如果成功,err为undefined,否则为错误对象。

错误码

以下错误码的详细介绍请参见通用错误码说明文档蓝牙服务子系统错误码

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

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
try {
    let a2dpSrc = a2dp.createA2dpSrcProfile();
    a2dpSrc.enableAbsoluteVolume('XX:XX:XX:XX:XX:XX', (err) => {
        if (err) {
            console.error("enableAbsoluteVolume error");
        }
    });
} catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

enableAbsoluteVolume11+

enableAbsoluteVolume(deviceId: string): Promise<void>

开启设备绝对音量能力。需要在设备支持绝对音量的情况下(参考isAbsoluteVolumeSupported),再开启设备绝对音量能力。使用Promise异步回调。

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESS_BLUETOOTH 和 ohos.permission.MANAGE_BLUETOOTH

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

参数:

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

返回值:

类型说明
Promise<void>以Promise的形式返回结果。如果成功,err为undefined,否则为错误对象。

错误码

以下错误码的详细介绍请参见通用错误码说明文档蓝牙服务子系统错误码

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

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
try {
    let a2dpSrc = a2dp.createA2dpSrcProfile();
    a2dpSrc.enableAbsoluteVolume('XX:XX:XX:XX:XX:XX').then(() => {
            console.info("enableAbsoluteVolume");
        }
    );
} catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

disableAbsoluteVolume11+

disableAbsoluteVolume(deviceId: string, callback: AsyncCallback<void>): void

关闭设备绝对音量能力。需要在设备支持绝对音量的情况下(参考isAbsoluteVolumeSupported),再关闭设备绝对音量能力。使用Callback异步回调。

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESS_BLUETOOTH 和 ohos.permission.MANAGE_BLUETOOTH

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

参数:

参数名类型必填说明
deviceIdstring远端设备地址。
callbackAsyncCallback<void>回调函数。如果成功,err为undefined,否则为错误对象。

错误码

以下错误码的详细介绍请参见通用错误码说明文档蓝牙服务子系统错误码

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

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
try {
    let a2dpSrc = a2dp.createA2dpSrcProfile();
    a2dpSrc.disableAbsoluteVolume('XX:XX:XX:XX:XX:XX', (err) => {
        if (err) {
            console.error("disableAbsoluteVolume error");
        }
    });
} catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

disableAbsoluteVolume11+

disableAbsoluteVolume(deviceId: string): Promise<void>

关闭设备绝对音量能力。需要在设备支持绝对音量的情况下(参考isAbsoluteVolumeSupported),再关闭设备绝对音量能力。使用Promise异步回调。

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESS_BLUETOOTH 和 ohos.permission.MANAGE_BLUETOOTH

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

参数:

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

返回值:

类型说明
Promise<void>以Promise的形式返回结果。如果成功,err为undefined,否则为错误对象。

错误码

以下错误码的详细介绍请参见通用错误码说明文档蓝牙服务子系统错误码

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

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
try {
    let a2dpSrc = a2dp.createA2dpSrcProfile();
    a2dpSrc.disableAbsoluteVolume('XX:XX:XX:XX:XX:XX').then(() => {
        console.info("disableAbsoluteVolume");
    });
} catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

getCurrentCodecInfo11+

getCurrentCodecInfo(deviceId: string): CodecInfo

获取当前编码器信息。

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESS_BLUETOOTH

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

参数:

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

返回值:

类型说明
CodecInfo当前编码器信息。

错误码

以下错误码的详细介绍请参见通用错误码说明文档蓝牙服务子系统错误码

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

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
try {
    let a2dpSrc = a2dp.createA2dpSrcProfile();
    let codecInfo : a2dp.CodecInfo = a2dpSrc.getCurrentCodecInfo('XX:XX:XX:XX:XX:XX');
} catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

setCurrentCodecInfo11+

setCurrentCodecInfo(deviceId: string, codecInfo: CodecInfo): void

设置当前编码器信息。

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESS_BLUETOOTH 和 ohos.permission.MANAGE_BLUETOOTH

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

参数:

参数名类型必填说明
deviceIdstring远端设备地址。
codecInfoCodecInfo编码器信息。

错误码

以下错误码的详细介绍请参见通用错误码说明文档蓝牙服务子系统错误码

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

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
try {
    let a2dpSrc = a2dp.createA2dpSrcProfile();
    let codecInfo : a2dp.CodecInfo = {
        codecType: 0,
        codecBitsPerSample: 1,
        codecChannelMode: 2,
        codecSampleRate: 1
    }
    a2dpSrc.setCurrentCodecInfo('XX:XX:XX:XX:XX:XX', codecInfo);
} catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

disableAutoPlay12+

disableAutoPlay(deviceId: string, duration: number): Promise<void>

限制设备在连接成功的若干毫秒内播放音乐。使用Promise异步回调。

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESS_BLUETOOTH 和 ohos.permission.MANAGE_BLUETOOTH

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

参数:

参数名类型必填说明
deviceIdstring远端设备地址,例如:"11:22:33:AA:BB:FF"。
durationnumber拦截时长,单位:毫秒。

返回值:

类型说明
Promise<void>以Promise的形式返回结果。如果成功,err为undefined,否则为错误对象。

错误码

以下错误码的详细介绍请参见通用错误码说明文档蓝牙服务子系统错误码

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

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
try {
    let a2dpSrc = a2dp.createA2dpSrcProfile();
    let durationNumber = 1000;
    a2dpSrc.disableAutoPlay('XX:XX:XX:XX:XX:XX', durationNumber).then(() => {
        console.info("disableAutoPlay");
    });
} catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

enableAutoPlay12+

enableAutoPlay(deviceId: string): Promise<void>

允许设备在连接成功后自动播放音乐。使用Promise异步回调。

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESS_BLUETOOTH 和 ohos.permission.MANAGE_BLUETOOTH

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

参数:

参数名类型必填说明
deviceIdstring远端设备地址,例如:"11:22:33:AA:BB:FF"。

返回值:

类型说明
Promise<void>以Promise的形式返回结果。如果成功,err为undefined,否则为错误对象。

错误码

以下错误码的详细介绍请参见通用错误码说明文档蓝牙服务子系统错误码

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

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
try {
    let a2dpSrc = a2dp.createA2dpSrcProfile();
    a2dpSrc.enableAutoPlay('XX:XX:XX:XX:XX:XX').then(() => {
        console.info("enableAutoPlay");
    });
} catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

getAutoPlayDisabledDuration12+

getAutoPlayDisabledDuration(deviceId: string): Promise<number>

获取拦截时长或自动播放开关。使用Promise异步回调。

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESS_BLUETOOTH 和 ohos.permission.MANAGE_BLUETOOTH

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

参数:

参数名类型必填说明
deviceIdstring远端设备地址,例如:"11:22:33:AA:BB:FF"。

返回值:

类型说明
Promise<number>以Promise的形式返回结果。number为返回的拦截时长,单位:毫秒。如果返回-1,则表示允许设备在连接成功后自动播放音乐。

错误码

以下错误码的详细介绍请参见通用错误码说明文档蓝牙服务子系统错误码

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

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
try {
    let a2dpSrc = a2dp.createA2dpSrcProfile();
    a2dpSrc.getAutoPlayDisabledDuration('XX:XX:XX:XX:XX:XX').then((data: number) => {
        console.info('number' + JSON.stringify(data));
    });
} catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Connectivity Kit(短距通信服务)

harmony 鸿蒙Bluetooth

harmony 鸿蒙Wifi

harmony 鸿蒙蓝牙服务子系统错误码

harmony 鸿蒙NFC错误码

harmony 鸿蒙SE(secureElement)错误码

harmony 鸿蒙WIFI错误码

harmony 鸿蒙@ohos.bluetooth.a2dp (蓝牙a2dp模块)

harmony 鸿蒙@ohos.bluetooth.access (蓝牙access模块)(系统接口)

harmony 鸿蒙@ohos.bluetooth.access (蓝牙access模块)

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/WFoUY1