uni.startBluetoothDevicesDiscovery({
allowDuplicatesKey: true, //是否允许重复上报同一设备
interval: 200,
services: ['FFF0', 'FFB0'],
success: e => {
uni.setNavigationBarTitle({ title: '扫描蓝牙设备中' })
this.searchLoad = true;
!this.isListenFound && this.onBluetoothDeviceFound(); // 是否已经监听发现外围设备事件
},
fail: e => {
console.log('搜索蓝牙设备失败,错误码:' + e.errCode);
if (e.errCode !== 0) {
initTypes(e.errCode);
}
}
});
- 发布:2020-08-07 16:57
- 更新:2023-08-28 15:02
- 阅读:2707
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: window10 版本1803 ,内部17134.407
HBuilderX类型: 正式
HBuilderX版本号: 2.8.4
手机系统: Android
手机系统版本号: Android 10
手机厂商: 华为
手机机型: 荣耀v20
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
先不设置services,搜索所有设备,查看设备列表中的advertisServiceUUIDs,再根据其中的一个设置services
先不设置services,搜索所有设备,查看设备列表中的advertisServiceUUIDs,再根据其中的一个设置services
预期结果:
能够通过services直接在搜索中过滤,不需要自己在已经搜索到的列表根据advertisServiceUUIDs去过滤
能够通过services直接在搜索中过滤,不需要自己在已经搜索到的列表根据advertisServiceUUIDs去过滤
实际结果:
services无效
services无效
bug描述:
uni.startBluetoothDevicesDiscovery搜索蓝牙设备,无法通过设置services属性过滤,只搜索广播包有对应 uuid 的主服务的蓝牙设备。
7 个回复
1***@qq.com
我也遇到了,过滤参数无效。。
1***@qq.com
uni.startBluetoothDevicesDiscovery({
services:['D973F2E0-B19E-11E2-9E96-0800200C9A66'],
allowDuplicatesKey:true,
success: res => {
console.log(res);
resolve(res)
},
fail: err => {
// self.showToast(
搜索设备失败
+ JSON.stringify(err));reject(err);
}
})
1***@qq.com
还是一样,把所有设备给搜索出来了了
s***@zhdbds.com (作者)
主服务的 UUID 没那么长的哦,你看文档,不过设置也没用。不如得到所有的设备列表,然后根据设备的advertisServiceUUIDs自己过滤吧
2020-10-15 16:47
8***@qq.com
去年的问题,依然不解决
2***@qq.com
iOS可以进行过滤,安卓没效果,如果在iOS的services里面设置了非法字符,软件还会直接崩溃,慎用!
胸口碎大石
请问这个问题解决了吗?怎么解决的 ?
7***@qq.com
2023年了,安卓的过滤还是无效啊