q***@yeah.net
q***@yeah.net
  • 发布:2025-08-15 11:47
  • 更新:2025-08-15 11:47
  • 阅读:12

【报Bug】使用uni.startBluetoothDevicesDiscovery时,若services参数传入的Array长度大于1,将产生没有搜索到任何设备的现象

分类:uni-app

产品分类: 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"  
    ],  
    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未触发)  
        })  
    }  
})

操作步骤:
// 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时),无法搜索到任何设备(抑或可能是所有设备都被过滤掉了)

bug描述:

在使用uni.startBluetoothDevicesDiscovery方法时,services参数传入的Array长度若大于1,会导致最终无法搜索到任何设备,只有传入的Array长度等于1时才能正常搜索并过滤到设备。

2025-08-15 11:47 负责人:无 分享
已邀请:

要回复问题请先登录注册