// services参数传入数组长度为1时,结果正常
uni.startBluetoothDevicesDiscovery({
services: [
"0000FFF0-0000-1000-8000-00805F9B34FB"
],
success(res) {
uni.onBluetoothDeviceFound(res => {
// 可以获取到所过滤到的设备列表
})
}
})
// services参数传入数组长度大于1时,无法搜索到任何设备
uni.startBluetoothDevicesDiscovery({
services: [
"0000FFF0-0000-1000-8000-00805F9B34FB",
"0000ae00-0000-1000-8000-00805f9b34fb",
],
success(res) {
uni.onBluetoothDeviceFound(res => {
// 无法获取到设备列表(onBluetoothDeviceFound未触发)
})
}
})

- 发布:2025-08-15 11:47
- 更新:2025-08-15 11:47
- 阅读:12
【报Bug】使用uni.startBluetoothDevicesDiscovery时,若services参数传入的Array长度大于1,将产生没有搜索到任何设备的现象
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 22H2
HBuilderX类型: 正式
HBuilderX版本号: 4.75
手机系统: Android
手机系统版本号: Android 15
手机厂商: 一加
手机机型: 一加12
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
// services参数传入数组长度大于1时,无法搜索到任何设备
uni.startBluetoothDevicesDiscovery({
services: [
"0000FFF0-0000-1000-8000-00805F9B34FB",
"0000ae00-0000-1000-8000-00805f9b34fb",
],
success(res) {
uni.onBluetoothDeviceFound(res => {
// 无法获取到设备列表(onBluetoothDeviceFound未触发)
})
}
})
// services参数传入数组长度大于1时,无法搜索到任何设备
uni.startBluetoothDevicesDiscovery({
services: [
"0000FFF0-0000-1000-8000-00805F9B34FB",
"0000ae00-0000-1000-8000-00805f9b34fb",
],
success(res) {
uni.onBluetoothDeviceFound(res => {
// 无法获取到设备列表(onBluetoothDeviceFound未触发)
})
}
})
预期结果:
当uni.startBluetoothDevicesDiscovery的参数services传入的Array长度大于1时(即传入多个主sevice时),最终onBluetoothDeviceFound应触发并返回满足“符合任一主service”的蓝牙设备列表。
当uni.startBluetoothDevicesDiscovery的参数services传入的Array长度大于1时(即传入多个主sevice时),最终onBluetoothDeviceFound应触发并返回满足“符合任一主service”的蓝牙设备列表。
实际结果:
当uni.startBluetoothDevicesDiscovery的参数services传入的Array长度大于1时(即传入多个主sevice时),无法搜索到任何设备(抑或可能是所有设备都被过滤掉了)
当uni.startBluetoothDevicesDiscovery的参数services传入的Array长度大于1时(即传入多个主sevice时),无法搜索到任何设备(抑或可能是所有设备都被过滤掉了)
bug描述:
在使用uni.startBluetoothDevicesDiscovery方法时,services参数传入的Array长度若大于1,会导致最终无法搜索到任何设备,只有传入的Array长度等于1时才能正常搜索并过滤到设备。
0 个回复