v***@foxmail.com
v***@foxmail.com
  • 发布:2023-07-10 15:43
  • 更新:2023-09-13 16:32
  • 阅读:631

【报Bug】蓝牙断开连接返回成功 却未真正与设备断开蓝牙

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows11专业版 22000.2057

HBuilderX类型: 正式

HBuilderX版本号: 3.8.7

手机系统: Android

手机系统版本号: Android 13

手机厂商: 小米

手机机型: 小米12pro

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
            // 断开蓝牙  
            closeBlu() {  
                const res = new Promise((resolve) => {  
                    uni.closeBLEConnection({  
                        deviceId: this.globalData.deviceId,  
                        success: (e) => {  
                            console.log('断开蓝牙第一步', e,this.globalData.deviceId)  
                            uni.closeBluetoothAdapter({  
                                success: (res) => {  
                                    console.log('断开蓝牙第二步', res)  
                                    this.globalData.blueStatus = false  
                                    this.globalData.currentBlue = ''  
                                    this.globalData.BluetoothList = []  
                                    resolve(true)  
                                }  
                            })  
                        },  
                        fail: (e) => {  
                            console.log('close failed: ' + JSON.stringify(e));  
                        }  
                    });  
                })  
                return res  

            },

操作步骤:

连接蓝牙后执行断开api

预期结果:

蓝牙与设备断开连接

实际结果:

api返回断开成功 实际设备蓝牙依旧连接

bug描述:

低功耗蓝牙使用uni.closeBLEConnection和uni.closeBluetoothAdapter API返回成功 实际未与硬件设备断开蓝牙连接

2023-07-10 15:43 负责人:无 分享
已邀请:
蓝天0730

蓝天0730

请问你这个问题解决了吗,我也遇见了这样的问题,小程序能成功断开但是安卓APP不行

  • v***@foxmail.com (作者)

    没解决 后来换成硬件方执行指令 短暂断开

    2023-11-02 17:05

  • c***@intasect.com.cn

    回复 v***@foxmail.com: 什么·是硬件方执行指令

    2024-06-04 11:12

1***@qq.com

1***@qq.com - 沉默

官网上有注意
请保证尽量成对的调用 createBLEConnection 和 closeBLEConnection 接口。安卓如果多次调用 createBLEConnection 创建连接,有可能导致系统持有同一设备多个连接的实例,导致调用 closeBLEConnection 的时候并不能真正的断开与设备的连接。
蓝牙连接随时可能断开,建议监听 uni.onBLEConnectionStateChange 回调事件,当蓝牙设备断开时按需执行重连操作
若对未连接的设备或已断开连接的设备调用数据读写操作的接口,会返回 10006 错误,建议进行重连操作
https://uniapp.dcloud.net.cn/api/system/ble.html#closebleconnection

  • 6***@qq.com

    成对的调用 createBLEConnection 和 closeBLEConnection 接口,但是也会遇到这种问题

    2024-06-06 14:26

要回复问题请先登录注册