搜索蓝牙设备 HarmonyOS 鸿蒙Next

搜索蓝牙设备 HarmonyOS 鸿蒙Next

如何像手机-设置-蓝牙中一样,搜索蓝牙设备并获取设备deviceName,使用

ble.on("BLEDeviceFind", this.onReceiveEvent);
let scanOptions: ble.ScanOptions = {
  interval: 5000,
  dutyMode: ble.ScanDuty.SCAN_MODE_LOW_POWER,
  matchMode: ble.MatchMode.MATCH_MODE_AGGRESSIVE
}
ble.startBLEScan(null, scanOptions);

扫描到的设备和设置中的不一样,而且deviceName是空的。


更多关于搜索蓝牙设备 HarmonyOS 鸿蒙Next的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

deviceName为空可能与对端设备发送的广播包有关。

  1. 如果对端设备名称过长,导致广播包超过31字节,可能会导致客户端扫描到广播包后,无法解析出设备名称。
  2. 如果对端设备发送广播包时,就没有选择带上设备名称,也会客户端扫描到广播包后,无法解析出设备名称。

想要获取deviceName,可以在扫描到对端设备mac地址后,尝试使用connection.getRemoteDeviceName接口查询对端设备名称。

api文档地址如下: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-bluetooth-connection-V5#connectiongetremotedevicename

更多关于搜索蓝牙设备 HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,搜索蓝牙设备可以通过BluetoothHost类实现。首先,获取BluetoothHost实例,然后调用startBluetoothDiscovery()方法开始搜索附近的蓝牙设备。设备发现后,系统会通过BluetoothDiscoverCallback回调返回发现的设备信息。可以调用stopBluetoothDiscovery()方法停止搜索。鸿蒙Next的蓝牙API支持低功耗蓝牙(BLE)和经典蓝牙设备。

回到顶部