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);
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
HarmonyOS
2025-01-10 10:25:11
浏览
收藏 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
微信
回复
2025-01-10 12:13:49


相关问题
HarmonyOS无法获取蓝牙设备真实MAC
1473浏览 • 1回复 待解决
HarmonyOS 智能设备蓝牙组网
494浏览 • 1回复 待解决
HarmonyOS ble蓝牙问题
639浏览 • 1回复 待解决
如何获取当前设备设备名称
3102浏览 • 1回复 待解决
HarmonyOS 经典蓝牙搜索问题
938浏览 • 1回复 待解决
HarmonyOS 蓝牙ble相关demo
506浏览 • 1回复 待解决
HarmonyOS 蓝牙BLE开发 Dome
978浏览 • 1回复 待解决
HarmonyOS 获取设备UUID
483浏览 • 1回复 待解决
鸿蒙如何获取设备绑定设备ID?
1504浏览 • 1回复 待解决
HarmonyOS Ble蓝牙demo
674浏览 • 1回复 待解决
HarmonyOS 旋转设备获取设备方向问题
469浏览 • 1回复 待解决
HarmonyOS 获取设备内存接口
346浏览 • 1回复 待解决
HarmonyOS 低功耗蓝牙设备DeviceId会变化
373浏览 • 1回复 待解决
HarmonyOS BLE 搜索、连接、断开等问题
1227浏览 • 1回复 待解决