uni-app中uni.startstartBluetoothDevicesDiscovery中的services无效问题

这几天在编码时候想进行蓝牙设备的筛选再进行显示,用到的是uni提供的蓝牙板块模板代码,再调试中发现uni.startstartBluetoothDevicesDiscovery中的services设置之后没办法进行筛选,最后发现是源代码的坑,已解决。
在这里插入图片描述
以上是函数的说明,使用官方的源码一开始搜索的蓝牙设备自动显示UUID,如图所示
在这里插入图片描述
然后我就将我想要的设备的UUID添加进services数组中,

uni.startBluetoothDevicesDiscovery({
						 services:['1F2A2039-5E5B-7AB1-DF4E-31002DFB728B'], 
						success: e => {
							console.log('开始搜索蓝牙设备:' + e.errMsg);
							this.searchLoad = true;
							this.$set(this.disabled, 1, true);
							this.$set(this.disabled, 2, false);
							this.$set(this.disabled, 3, false);
							this.onBluetoothDeviceFound();
							this.showMaskType = 'device';
							this.maskShow = true;
						},

发现蓝牙一个设备都不能发现了,后来我打印了发现设备数组的数据,发现带代码的坑:源代码中显示再屏幕上的UUID并不是UUID!他只是deviceId。所以不能进行筛选,我填入正确的UUID之后,就可以了。
信息图
以上为设备的信息数据。改代码:

 services:['0000FFF0-0000-1000-8000-00805F9B34FB'], 

最后筛选成功了,并且改了UUID的显示错误,改成deviceId。
在这里插入图片描述
最后,怎么获取设备的UUID等数据呢?

	getBluetoothDevices() {
			uni.getBluetoothDevices({
				success: res => {
					this.newDeviceLoad = false;
					console.log('获取蓝牙设备成功:' + res.errMsg);
					 console.log(JSON.stringify(res))
					/* if(res.devices.name.contains("heart") === true){ */
						this.list = res.devices;
					/* } */
				},
				fail: e => {
					console.log('获取蓝牙设备错误,错误码:' + e.errCode);
					if (e.errCode !== 0) {
						initTypes(e.errCode);
					}
				}
			});
		},

console.log(JSON.stringify(res))这行代码就能打印设备的信息,根据显示的UUID信息添加进services数组里边就好了。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值