HarmonyOS蓝牙广播问题
调用蓝牙广播,报错,错误码是 401,请问需要怎样的参数格式。
关键代码如下,附近为报错信息:
// 描述蓝牙低功耗设备发送广播的参数
let setting: ble.AdvertiseSetting = {
// 表示广播间隔,最小值设置32个slot表示20ms,最大值设置16384个slot,默认值设置为1600个slot表示1s。
interval: 150,
// 表示发送功率,最小值设置-127,最大值设置1,默认值设置-7,单位dbm。
txPower: -7,
// 表示是否是可连接广播
connectable: false
}
// 发送新蓝牙广播开锁
// BLE广播包内容
let advData: ble.AdvertiseData = createAdvertiseData(0x5A57, manufacturerSpecificData, serviceDataUuid, data, parcelUuids)
// BLE回复扫描请求回复响应。
let advResponse: ble.AdvertiseData = createAdvertiseData(0x7A77, encodePhoneData, serviceDataUuid, data, parcelUuids)
try{
// 开始发送BLE广播
ble.startAdvertising({
// 描述蓝牙低功耗设备发送广播的参数
advertisingSettings: setting,
// 表示广播的数据包内容
advertisingData: advData,
// 表示回复扫描请求的响应内容
advertisingResponse: advResponse,
// 表示发送广播持续的时间。单位为10ms,有效范围为1(10ms)到65535(655350ms),如果未指定此参数或者将其设置为0,则会连续发送广播。
duration: 300
}, (err, outAdvHandle) => {
if (err) {
...
} else {
Logger.info('BLEUtil',"advHandle: " + outAdvHandle);
}
})
} catch (err) {
Logger.error('BLEUtil', 'errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}
}
function createAdvertiseData(manufactureId: number, manufacturerSpecificData: Uint8Array,
serviceDataUuid?: string, serviceData?: Uint8Array,
serviceUuids?: Array<string>):ble.AdvertiseData{
// 制造商信息
let manufactureDataUnit: ble.ManufactureData = {
manufactureId: manufactureId,
manufactureValue: manufacturerSpecificData
}
let serviceDataUnit: ble.ServiceData | null = serviceDataUuid && serviceData ? {
serviceUuid: serviceDataUuid,
serviceValue: serviceData.buffer
} : null
let data: ble.AdvertiseData = {
// 表示要广播的服务 UUID 列表
serviceUuids: serviceUuids ? serviceUuids : [],
// 表示要广播的制造商信息列表。
manufactureData: [manufactureDataUnit],
// 表示要广播的服务数据列表。
serviceData: serviceDataUnit ? [serviceDataUnit] : []
}
return data
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 如何获取蓝牙广播包中service uuid
604浏览 • 1回复 待解决
HarmonyOS 蓝牙广播包如何正确的将ble.scanResult.data转为字符串
83浏览 • 1回复 待解决
HarmonyOS 蓝牙权限的问题, 未授权蓝牙权限后,蓝牙权限如何开启
502浏览 • 1回复 待解决
HarmonyOS 经典蓝牙的搜索问题
378浏览 • 1回复 待解决
HarmonyOS 经典蓝牙的socket通信问题
341浏览 • 1回复 待解决
HarmonyOS关于蓝牙无权限的问题
1031浏览 • 1回复 待解决
HarmonyOS 经典蓝牙的ssp连接和读取问题
542浏览 • 1回复 待解决
arkts socket模块怎么连接udp的广播,接收广播信号?
2388浏览 • 0回复 待解决
关于鸿蒙OS蓝牙API的问题?
6936浏览 • 1回复 待解决
关于鸿蒙OS蓝牙开发的问题
4848浏览 • 1回复 待解决
HarmonyOS 蓝牙主设备主动连接蓝牙外设的方法
93浏览 • 1回复 待解决
获取蓝牙权限后进入应用权限管理页面并没有获取到蓝牙权限,不确认是HarmonyOS问题还是调用的蓝牙权限不对
368浏览 • 1回复 待解决
harmonyOS 蓝牙怎么创建?
5609浏览 • 1回复 待解决
HarmonyOS蓝牙使用详情
340浏览 • 1回复 待解决
HarmonyOS 蓝牙API咨询
440浏览 • 2回复 待解决
Codelabs BLE蓝牙低功耗 例程不能发现外围蓝牙设备,应该如何差找问题呢?
5288浏览 • 1回复 待解决
HarmonyOS推送服务,有没有广播的方式呢?
382浏览 • 2回复 待解决
HarmonyOS 蓝牙BLE开发 Dome
495浏览 • 1回复 待解决
HarmonyOS 第三方应用安装和卸载广播
387浏览 • 0回复 待解决
鸿蒙怎么接收广播有知道的吗?
11328浏览 • 1回复 待解决
HarmonyOS 广播通知场景,有没有相关的实现demo可以参考?
207浏览 • 1回复 待解决
鸿蒙是不是不支持android的短信广播或者监听短信?
10767浏览 • 1回复 待解决
HarmonyOS 蓝牙API startBLEScan有变化吗?
12浏览 • 1回复 待解决
HarmonyOS 蓝牙BLE使用是否需要定位
69浏览 • 1回复 待解决
HarmonyOS无法获取蓝牙设备的真实MAC
634浏览 • 1回复 待解决
createAdvertiseData方法中,manufactureDataUnit的属性值manufactureValue是ArrayBuffer类型,而方法中manufacturerSpecificData参数类型是Uint8Array,所以参数无效,请将对应的代码改为以下模样:
参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ble-development-guide-V5#开启关闭广播