收藏
回答

蓝牙断开连接之后,立即调用关闭蓝牙模块,iOS收不到 连接状态的改变事件

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 Bug closeBluetoothAdapter 客户端 iOS 6.6.7 2.0.9
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


最后一次编辑于  2018-06-07  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • 娇华
    娇华
    2018-06-07

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

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

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


    2018-06-07
    赞同
    回复
  • 许力鹏
    许力鹏
    2018-07-02

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

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

    2018-07-02
    赞同
    回复 1
    • 零件狗
      零件狗
      2018-11-14

      我的ios的可以,安卓的不行。。。安卓的是小米手机6x

      2018-11-14
      回复