uniapp搜索蓝牙设备时如何获取默认设备名称
在uniapp中搜索蓝牙设备时,如何获取设备的默认名称?调用uni.startBluetoothDevicesDiscovery后,返回的设备信息里只有deviceId,没有显示设备名称。请问怎样才能正确获取到蓝牙设备的默认名称?是否需要额外的配置或权限?
2 回复
在UniApp中,使用uni.getBluetoothDevices()获取蓝牙设备列表后,从返回的devices数组中,每个设备的name字段即为设备名称。若设备未设置名称,则可能返回空字符串。
在uni-app中搜索蓝牙设备时,可以通过监听onBluetoothDeviceFound事件获取设备信息,其中包含设备名称。但系统可能不会直接提供“默认设备名称”,通常获取的是设备广播时的localName或name字段。
关键代码示例:
// 开始搜索蓝牙设备
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
});
});
注意事项:
- 字段说明:
localName:设备广播的本地名称(更常用)。name:系统缓存中的设备名称(可能为空)。
- 权限配置:需在 manifest.json 中申请蓝牙权限(iOS 还需描述使用原因)。
- 兼容性:不同设备返回的字段可能不一致,建议用
device.localName || device.name作为显示名称。
若需进一步过滤或处理设备名称,可在回调函数中添加逻辑。

