蓝牙断开连接之后,立即调用关闭蓝牙模块,iOS收不到 连接状态的改变事件
发布于 6 年前 作者 chao53 1462 次浏览 来自 问答
bleConnectUtils.unmount = function(cb) {
  if (deviceId) {
    wx.closeBLEConnection({
      deviceId: deviceId,
      complete (e) {
        console.log('closeBLEConnection complete', e)
        setTimeout(() => {
          wx.closeBluetoothAdapter({
            complete (e) {
          // 如果 关闭了。那么就没有回调了
              cb && cb()
            }
          })
        }, 200)
      }
    })
    bleConnectUtils.resetData()
  } else {
    console.log('没有连接过也调用关闭')
    cb && cb()
  }
}

如果没有上面的 setTimeout() 方法,那么就收不到

wx.onBLEConnectionStateChange

iOS 不行,安卓可以,iOS试了 10 和 11.4

2 回复

你好,麻烦提供以下信息: 

1、能复现问题的代码片段( https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html ) 

2、出现问题的机型和微信版本号 

确实,wx.onBLEConnectionStateChange在蓝牙适配器开启的情况下起作用(IOS)。

而在安卓上关了适配器还是可以监听到连接状态。

回到顶部