页面B进入调用uni.openBluetoothAdapter,然后连接蓝牙设备进行通讯, unload调用uni.closeBluetoothAdapter。页面A做一个按钮,跳转到页面B。在页面A点击按钮,进入页面B,返回,再点页面A的按钮,快速操作几次。蓝牙通讯因为快速的多次进入而连接混乱,造成uni.closeBluetoothAdapter无法正确释放蓝牙设备
- 发布:2023-02-13 14:02
- 更新:2023-09-12 08:31
- 阅读:1515
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win11
HBuilderX类型: 正式
HBuilderX版本号: 3.6.18
手机系统: Android
手机系统版本号: Android 12
手机厂商: 小米
手机机型: 小米12
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
unload调用uni.closeBluetoothAdapter可以完全的释放蓝牙的连接的设备与释放蓝牙的资源
unload调用uni.closeBluetoothAdapter可以完全的释放蓝牙的连接的设备与释放蓝牙的资源
实际结果:
unload调用uni.closeBluetoothAdapter,无法完全的释放资源
unload调用uni.closeBluetoothAdapter,无法完全的释放资源
bug描述:
uni.openBluetoothAdapter({
success: e => {
uni.startBluetoothDevicesDiscovery({
success: e => {
_this.searchLoad = true;
_this.ble_status = '搜索中...';
_this.is_searching = true;
console.log('开始搜索蓝牙设备:' + e.errMsg);
console.log(JSON.stringify(e));
this.searchLoad = true;
},
fail: e => {
console.log('搜索蓝牙设备失败,错误码:' + e.errCode);
if (e.errCode !== 0) {
initTypes(e.errCode);
}
}
});
}
});
使用openBluetoothAdapter初始化蓝牙, 每次离开页面都会做以下的代码断开蓝牙连接与蓝牙设备关闭
uni.closeBLEConnection({
deviceId: _this.deviceId,
success(res) {
_this.deviceConnected = false;
_this.btn_conn_dis = false;
_this.btn_disconn_dis = true;
console.log(JSON.stringify(res))
uni.closeBluetoothAdapter({
success: res => {
_this.deviceConnected = false;
_this.deviceState = "不可用";
console.log('断开蓝牙模块成功');
_this.searchLoad = false;
_this.adapterState = [];
_this.btn_conn_dis = true;
_this.btn_disconn_dis = true;
console.log(JSON.stringify(res));
// toast('断开蓝牙模块');
}
});
}
})
问题在于多次进入页面,快速的进入,退出,进入页面,之后蓝牙设备调用uni.closeBluetoothAdapter无法完全关闭蓝牙设备,提示是成功,但是蓝牙还会连接着设备,无法释放。无法搜索到之前连接的蓝牙设备
在APP上存在这个问题,在微信小程序上也会存在这样的问题。但是如果使用wx.closeBluetoothAdapter,在微信小程序上是可以很好的关闭掉蓝牙设备
4 个回复
v***@foxmail.com
请问您的问题解决了吗?我这边也遇到这个问题 api返回断开成功状态 但硬件设备蓝牙依旧连接着
n***@163.com
解决了吗,我也遇到了,
8***@qq.com - 小虾米
俺也一样,出现了 n+1 重复且叠加的数据
远古烂泥 - 本人太帅无需介绍
我也遇到了,调用断开方法返回true了,但是设备还是连接着,ios基座测试的
远古烂泥
是在设备连接着的时候更新代码就会出现这样的情况
2023-09-12 08:50
8***@qq.com
回复 远古烂泥: 用plus就好了
2023-09-13 14:33
远古烂泥
回复 8***@qq.com: 老大!麻烦告诉我怎么用,我不会用plus
2023-09-22 20:02
过景不候
回复 8***@qq.com: 瞎说什么 问题都没弄清楚就在这里乱说
2023-11-28 15:45
过景不候
回复 远古烂泥: 看我的文章
2023-11-28 15:45
x***@163.com
回复 过景不候: 这个bug解决了吗
2024-01-15 15:44
c***@intasect.com.cn
回复 8***@qq.com: plus怎么使用
2024-06-04 11:22