harmony 鸿蒙蓝牙子系统Changelog
蓝牙子系统Changelog
cl.bluetooth.1 蓝牙BLE接口错误码变更
访问级别
公开接口
变更原因
蓝牙子系统BLE相关接口错误码不够清晰,开发者无法通过错误信息明确需要如何修复问题,影响开发效率。
变更影响
此变更涉及应用适配。
变更前:BLE广播、BLE扫描、GATT Client、GATT Server接口异常时仅返回2900099错误码。
变更后:BLE广播、BLE扫描、GATT Client、GATT Server接口异常时会返回更详细的错误码。
起始API Level
10
变更发生版本
从OpenHarmony SDK 6.0.0.32开始。
变更的接口/组件
|模块名 |命名空间 |类名|接口声明 |主要变更点说明 |
|————————————|——————-|–|————————————————————|————–|
|@ohos.bluetooth.ble.d.ts |ble ||function startAdvertising(setting: AdvertiseSetting, advData: AdvertiseData, advResponse?: AdvertiseData): void;|新增2900010错误码:广播资源已耗尽;
新增2902054错误码:广播报文数据长度超限;|
|@ohos.bluetooth.ble.d.ts |ble ||function startAdvertising(advertisingParams: AdvertisingParams, callback: AsyncCallback<number>): void;|新增2900010错误码:广播资源已耗尽;
新增2902054错误码:广播报文数据长度超限;|
|@ohos.bluetooth.ble.d.ts |ble ||function startAdvertising(advertisingParams: AdvertisingParams): Promise<number>;|新增2900010错误码:广播资源已耗尽;
新增2902054错误码:广播报文数据长度超限;|
|@ohos.bluetooth.ble.d.ts |ble ||function enableAdvertising(advertisingEnableParams: AdvertisingEnableParams, callback: AsyncCallback<void>): void;|新增2902055错误码:无效的广播ID;|
|@ohos.bluetooth.ble.d.ts |ble ||function enableAdvertising(advertisingEnableParams: AdvertisingEnableParams): Promise<void>;|新增2902055错误码:无效的广播ID;|
|@ohos.bluetooth.ble.d.ts |ble ||function disableAdvertising(advertisingDisableParams: AdvertisingDisableParams, callback: AsyncCallback<void>): void;|新增2902055错误码:无效的广播ID;|
|@ohos.bluetooth.ble.d.ts |ble ||function disableAdvertising(advertisingDisableParams: AdvertisingDisableParams): Promise<void>;|新增2902055错误码:无效的广播ID;|
|@ohos.bluetooth.ble.d.ts |ble ||function stopAdvertising(advertisingId: number, callback: AsyncCallback<void>): void;|新增2902055错误码:无效的广播ID;|
|@ohos.bluetooth.ble.d.ts |ble ||function stopAdvertising(advertisingId: number): Promise<void>;|新增2902055错误码:无效的广播ID;|
|@ohos.bluetooth.ble.d.ts |ble |GattClientDevice|readCharacteristicValue(characteristic: BLECharacteristic, callback: AsyncCallback<BLECharacteristic>): void;|新增2900011错误码:操作忙碌,需等待上一次操作结束;
新增2901000错误码:读失败,对端禁止读操作;
新增2901003错误码:读失败,未与对端建立连接;
新增2901004错误码:读失败,连接链路拥塞;
新增2901005错误码:读失败,连接链路未加密;
新增2901006错误码:读失败,连接链路未认证;
新增2901007错误码:读失败,连接链路未授权;|
|@ohos.bluetooth.ble.d.ts |ble |GattClientDevice|readCharacteristicValue(characteristic: BLECharacteristic): Promise<BLECharacteristic>;|新增2900011错误码:操作忙碌,需等待上一次操作结束;
新增2901000错误码:读失败,对端禁止读操作;
新增2901003错误码:读失败,未与对端建立连接;
新增2901004错误码:读失败,连接链路拥塞;
新增2901005错误码:读失败,连接链路未加密;
新增2901006错误码:读失败,连接链路未认证;
新增2901007错误码:读失败,连接链路未授权;|
|@ohos.bluetooth.ble.d.ts |ble |GattClientDevice|readDescriptorValue(descriptor: BLEDescriptor, callback: AsyncCallback<BLEDescriptor>): void;|新增2900011错误码:操作忙碌,需等待上一次操作结束;
新增2901000错误码:读失败,对端禁止读操作;
新增2901003错误码:读失败,未与对端建立连接;
新增2901004错误码:读失败,连接链路拥塞;
新增2901005错误码:读失败,连接链路未加密;
新增2901006错误码:读失败,连接链路未认证;
新增2901007错误码:读失败,连接链路未授权;|
|@ohos.bluetooth.ble.d.ts |ble |GattClientDevice|readDescriptorValue(descriptor: BLEDescriptor): Promise<BLEDescriptor>;|新增2900011错误码:操作忙碌,需等待上一次操作结束;
新增2901000错误码:读失败,对端禁止读操作;
新增2901003错误码:读失败,未与对端建立连接;
新增2901004错误码:读失败,连接链路拥塞;
新增2901005错误码:读失败,连接链路未加密;
新增2901006错误码:读失败,连接链路未认证;
新增2901007错误码:读失败,连接链路未授权;|
|@ohos.bluetooth.ble.d.ts |ble |GattClientDevice|writeCharacteristicValue(characteristic: BLECharacteristic, writeType: GattWriteType, callback: AsyncCallback<void> ): void;|新增2900011错误码:操作忙碌,需等待上一次操作结束;
新增2901001错误码:写失败,对端禁止写操作;
新增2901003错误码:写失败,未与对端建立连接;
新增2901004错误码:写失败,连接链路拥塞;
新增2901005错误码:写失败,连接链路未加密;
新增2901006错误码:写失败,连接链路未认证;
新增2901007错误码:写失败,连接链路未授权; |
|@ohos.bluetooth.ble.d.ts |ble |GattClientDevice|writeCharacteristicValue(characteristic: BLECharacteristic, writeType: GattWriteType): Promise<void>;|新增2900011错误码:操作忙碌,需等待上一次操作结束;
新增2901001错误码:写失败,对端禁止写操作;
新增2901003错误码:写失败,未与对端建立连接;
新增2901004错误码:写失败,连接链路拥塞;
新增2901005错误码:写失败,连接链路未加密;
新增2901006错误码:写失败,连接链路未认证;
新增2901007错误码:写失败,连接链路未授权; |
|@ohos.bluetooth.ble.d.ts |ble |GattClientDevice|writeDescriptorValue(descriptor: BLEDescriptor, callback: AsyncCallback<void>): void;|新增2900011错误码:操作忙碌,需等待上一次操作结束;
新增2901001错误码:写失败,对端禁止写操作;
新增2901003错误码:写失败,未与对端建立连接;
新增2901004错误码:写失败,连接链路拥塞;
新增2901005错误码:写失败,连接链路未加密;
新增2901006错误码:写失败,连接链路未认证;
新增2901007错误码:写失败,连接链路未授权; |
|@ohos.bluetooth.ble.d.ts |ble |GattClientDevice|writeDescriptorValue(descriptor: BLEDescriptor): Promise<void>;|新增2900011错误码:操作忙碌,需等待上一次操作结束;
新增2901001错误码:写失败,对端禁止写操作;
新增2901003错误码:写失败,未与对端建立连接;
新增2901004错误码:写失败,连接链路拥塞;
新增2901005错误码:写失败,连接链路未加密;
新增2901006错误码:写失败,连接链路未认证;
新增2901007错误码:写失败,连接链路未授权; |
|@ohos.bluetooth.ble.d.ts |ble |GattClientDevice|getRssiValue(callback: AsyncCallback<number>): void;|新增2900011错误码:操作忙碌,需等待上一次操作结束;
新增2901003错误码:未与对端建立连接;|
|@ohos.bluetooth.ble.d.ts |ble |GattClientDevice|getRssiValue(): Promise<number>;|新增2900011错误码:操作忙碌,需等待上一次操作结束;
新增2901003错误码:未与对端建立连接;|
|@ohos.bluetooth.ble.d.ts |ble |GattClientDevice|setCharacteristicChangeNotification(characteristic: BLECharacteristic, enable: boolean, callback: AsyncCallback<void>): void;|新增2900011错误码:操作忙碌,需等待上一次操作结束;
新增2901003错误码:未与对端建立连接;|
|@ohos.bluetooth.ble.d.ts |ble |GattClientDevice|setCharacteristicChangeNotification(characteristic: BLECharacteristic, enable: boolean): Promise<void>;|新增2900011错误码:操作忙碌,需等待上一次操作结束;
新增2901003错误码:未与对端建立连接;|
|@ohos.bluetooth.ble.d.ts |ble |GattClientDevice|setCharacteristicChangeIndication( characteristic: BLECharacteristic, enable: boolean, callback: AsyncCallback<void>): void;|新增2900011错误码:操作忙碌,需等待上一次操作结束;
新增2901003错误码:未与对端建立连接;|
|@ohos.bluetooth.ble.d.ts |ble |GattClientDevice|setCharacteristicChangeIndication(characteristic: BLECharacteristic, enable: boolean): Promise<void>;|新增2900011错误码:操作忙碌,需等待上一次操作结束;
新增2901003错误码:未与对端建立连接;|
适配指导
应用可将接口调用的错误码打印出来,辅助定位问题。
以广播报文数据超过最大长度限制导致开启BLE广播失败为例:
let advSettings: ble.AdvertiseSetting = {
"interval": 160,
"connectable": true,
};
// 1)开发者构造的广播报文数据长度超过最大长度限制
let serviceUuidsArray: Array<string> = new Array();
serviceUuidsArray.push("00001111-1111-1000-8000-00805f9b34fb");
serviceUuidsArray.push("00001111-2222-1000-8000-00805f9b34fb");
serviceUuidsArray.push("00001111-3333-1000-8000-00805f9b34fb");
let advData: ble.AdvertiseData = {
"serviceUuids": serviceUuidsArray,
"manufactureData": new Array(),
"serviceData": new Array(),
"includeDeviceName": true,
};
try {
ble.startAdvertising(advSettings, advData);
} catch (err) {
// 2)通过日志打印发现接口调用报错2902054,即表示广播报文数据长度超过最大长度限制
console.error("errCode: " + err.code + ", errMessage: " + err.message);
}
// 3)开发者根据错误码确定广播报文构造方式的合理性。建议:
// - 是否有必要携带本机蓝牙设备名
// - 是否将部分广播报文构造成入参advResponse
你可能感兴趣的鸿蒙文章
harmony 鸿蒙ArkTS方舟编程语言Changelog
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦