收藏
回答

调用获取位置api后-初始化蓝牙模块-启动扫描-扫描回调到新设备-停止扫描关闭模快第三次就没回调了?


现在复现了  建议大家 wx.getLocation 和蓝牙扫描相关函数 不要一起用到 慎用!!! 不然各种扫不到 各种坑!!!


// 安卓机会这样 执行三次后就没回调了  去掉获取位置api 则会有5次回调 第6次会没回调(这个是由于安卓系统30秒内限制了只能5次扫描)// 但是为什么 加了获取位置api后 执行到第三次后就一直获取不到回调了呢?



// 代码片段
wx.getLocation({
  success: () => {
    wx.openBluetoothAdapter({
      success: () => {
        console.log('蓝牙模块初始化成功')
        wx.startBluetoothDevicesDiscovery({
          // services: ['08D9'],
          success: () => {
            console.log('蓝牙扫描启动成功')
            wx.onBluetoothDeviceFound((res) => {
              console.log(res)
              wx.stopBluetoothDevicesDiscovery({
                success: () => {
                  console.log('停止蓝牙扫描成功')
                  wx.closeBluetoothAdapter({
                    success: () => {
                      console.log('关闭蓝牙模块成功')
                    },
                    fail: (res) => {
                      console.log('关闭蓝牙模块失败', res)
                    }
                  })
                },
                fail: (res) => {
                  console.log('停止蓝牙扫描失败', res)
                }
              })
            })
          },
          fail: async (res) => {
            console.log('蓝牙扫描启动失败', res)
          }
        })

      },
      fail: (res) => {
        console.log('蓝牙模块初始化失败', res)
      }
    })
  }
})



获取位置api(wx.getLocation) 和 微信蓝牙扫描相关(wx.onBluetoothDeviceFound)一起用 就有奇怪的问题

这个东西坑死我了 导致蓝牙各种扫不到 之前都是好的 项目里加了位置上报 就各种扫不到 去掉就好了 一直找不到头绪

现在复现了 建议大家 wx.getLocation 和蓝牙相关函数 不要一起用到 慎用!!! 不然各种坑!!!

最后一次编辑于  2020-03-28
回答关注问题邀请回答
收藏

2 个回答

  • IT王顺
    IT王顺
    2020-03-28
    获取位置api(wx.getLocation) 和 微信蓝牙扫描相关(wx.onBluetoothDeviceFound)一起用 就有奇怪的问题 第三次就没回调 不调用 wx.getLocation 就没这问题
    
    2020-03-28
    有用 1
    回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2020-03-28

    请提供能复现问题的简单代码片段https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    再重现一次,在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,提供一下微信号,复现问题的详细时间点

    2020-03-28
    有用
    回复 12
    • IT王顺
      IT王顺
      2020-03-28
      https://developers.weixin.qq.com/s/F1mmvbm17fgB 代码片段 勾上es6 增强编译 重复点击测试按钮 看调试窗口 点击到第三次 就不回调了
      2020-03-28
      回复
    • IT王顺
      IT王顺
      2020-03-28
      https://developers.weixin.qq.com/s/J5mxEbmq7MgN  加了个测试2按钮  方便对比  测试2去掉了获取位置的api 则蓝牙扫描可以成功回调三次以上
      2020-03-28
      回复
    • IT王顺
      IT王顺
      2020-03-28
      日志已上传 微信号 tel15051945151
      2020-03-28
      回复
    • IT王顺
      IT王顺
      2020-03-28
      第一张是 点击测试按钮的运行结果   第二张是点击测试2按钮的运行结果  可以看到点击测试按钮 只有两次回调 点击测试2按钮可以回调3次以上
      2020-03-28
      回复
    • IT王顺
      IT王顺
      2020-03-28
      还在嘛 怎么不回复了- -
      2020-03-28
      回复
    查看更多(7)
登录 后发表内容
问题标签