uniapp搜索蓝牙设备时如何获取默认设备名称

在uniapp中搜索蓝牙设备时,如何获取设备的默认名称?调用uni.startBluetoothDevicesDiscovery后,返回的设备信息里只有deviceId,没有显示设备名称。请问怎样才能正确获取到蓝牙设备的默认名称?是否需要额外的配置或权限?

2 回复

在UniApp中,使用uni.getBluetoothDevices()获取蓝牙设备列表后,从返回的devices数组中,每个设备的name字段即为设备名称。若设备未设置名称,则可能返回空字符串。


在uni-app中搜索蓝牙设备时,可以通过监听onBluetoothDeviceFound事件获取设备信息,其中包含设备名称。但系统可能不会直接提供“默认设备名称”,通常获取的是设备广播时的localNamename字段。

关键代码示例

// 开始搜索蓝牙设备
uni.startBluetoothDevicesDiscovery({
  services: [], // 可指定服务UUID
  success: (res) => {
    console.log('开始搜索设备');
  }
});

// 监听寻找到新设备的事件
uni.onBluetoothDeviceFound((devices) => {
  // devices.devices 是设备数组
  devices.devices.forEach(device => {
    console.log('发现设备名称:', device.localName || device.name); 
    // 优先使用 localName(广播名称),若无则使用 name
  });
});

注意事项

  1. 字段说明
    • localName:设备广播的本地名称(更常用)。
    • name:系统缓存中的设备名称(可能为空)。
  2. 权限配置:需在 manifest.json 中申请蓝牙权限(iOS 还需描述使用原因)。
  3. 兼容性:不同设备返回的字段可能不一致,建议用 device.localName || device.name 作为显示名称。

若需进一步过滤或处理设备名称,可在回调函数中添加逻辑。

回到顶部