HarmonyOS ble搜索蓝牙设备,获取的设备的deviceName全部为空

通过使用ble搜索蓝牙设备,获取的deviceName全部是为空的,另外一台手机蓝牙打开,通过系统设置,蓝牙,是可以搜索到,但是通过ble模块是无法搜索到的

代码:

try {
  ble.on('BLEDeviceFind', (data: Array<ble.ScanResult>) => {
    ToastUtil.showToast('扫描到了')
    console.log('tag', 'BLEDeviceFind', JSON.stringify(data))
  })

  ble.startBLEScan(null)
} catch (err) {
  console.error('tag',
    'errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}
HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

ble模块的name是通过ble广播包中获取的,若对端设备广播包未选择带上设备名,或者广播包过长,会导致设备名称无法解析显示。若想获取设备名称,可以解析查下到的蓝牙设备广播包,里面会有设备名称。广播包解析可参考如下文档:https://cloud.tencent.com/developer/article/1690254

ble蓝牙底层都遵循att gatt,对于手机系统,他的数据广播包格式都是遵循这套逻辑,其解析方式都是一样的。至于名字为什么不解析,因为广播包中有个AdvertiseData-》includeDeviceName字段,表示设备在发送广播包是,可选择是否在广播包中携带上设备名称。https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-bluetooth-ble-V5#advertisedata

分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS无法获取蓝牙设备真实MAC
927浏览 • 1回复 待解决
HarmonyOS 智能设备蓝牙组网
176浏览 • 1回复 待解决
如何获取当前设备设备名称
2764浏览 • 1回复 待解决
HarmonyOS ble蓝牙问题
209浏览 • 1回复 待解决
HarmonyOS Ble蓝牙demo
215浏览 • 1回复 待解决
HarmonyOS 获取设备UUID
206浏览 • 1回复 待解决
HarmonyOS 蓝牙ble相关demo
175浏览 • 1回复 待解决
HarmonyOS 蓝牙BLE开发 Dome
678浏览 • 1回复 待解决
HarmonyOS 经典蓝牙搜索问题
599浏览 • 1回复 待解决
鸿蒙如何获取设备绑定设备ID?
1208浏览 • 1回复 待解决
HarmonyOS 旋转设备获取设备方向问题
115浏览 • 1回复 待解决
HarmonyOS 获取设备内存接口
134浏览 • 1回复 待解决
sim.getOpNameSync获取
398浏览 • 0回复 待解决