收藏
回答

调用获取位置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 和蓝牙相关函数 不要一起用到 慎用!!! 不然各种坑!!!

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

2 个回答

登录 后发表内容
问题标签