收藏
回答

小程序IOS搜索蓝牙设备有时候搜索不到

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug 蓝牙/wx.startBluetoothDevicesDiscovery(Object object) 客户端 7.0.3 WeChatLib:2.6.4

- 在IOS设别上调用wx.startBluetoothDevicesDiscovery时,如果以前没连接过这个蓝牙设备,就会出现很难搜索到这个蓝牙设备的情况,我退出小程序再进去搜索的时候就能很快的搜索到,问题就出现在第一个搜索新设备的时候


- 预期表现


- 复现路径


- 提供一个最简复现 Demo

// 1、获取本机蓝牙适配器状态

wx.getBluetoothAdapterState({

success(res) {

let available = res.available;

if (available == false) {

wx.showModal({

title: '提示',

content: '手机蓝牙不可用,请重启后再试',

showCancel: false,

success(res) {

}

})

return;

}


// 2、发现周边设备

wx.startBluetoothDevicesDiscovery({

services: [],

success: function (res) {

// console.log('开始搜索周边设备')

wx.showLoading({

title: '正在搜索中',

});


// 3、获取周边设备

wx.getBluetoothDevices({

success: function (res) {

for (let i = 0; i < res.devices.length; i++) {

if (lockNum.indexOf('CASZX') >= 0) {

var name = res.devices[i].name;

if (name == lockNum) {

_this.setData({

deviceId: res.devices[i].deviceId

});

wx.hideLoading()

_this.stopBluetoothDevicesDiscovery();

_this.openLock(flg)

break

}

}

else if (app.isMac(lockNum)) {

var advertisData = res.devices[i].advertisData;

var mac = _this.ab2hex(advertisData);

if (mac == lockNum) {

_this.setData({

deviceId: res.devices[i].deviceId

});

wx.hideLoading()

_this.stopBluetoothDevicesDiscovery();

_this.openLock(flg)

break

}

}

}


},


})

//4 、监听发现设备

wx.onBluetoothDeviceFound(function (devices) {

for (let i = 0; i < devices.devices.length; i++) {

if (lockNum.indexOf('CASZX') >= 0) {

var name = devices.devices[i].name;

if (name == lockNum) {

_this.setData({

deviceId: devices.devices[i].deviceId

});

wx.hideLoading()

_this.stopBluetoothDevicesDiscovery();

_this.openLock(flg)

break

}

}

else if (app.isMac(lockNum)) {

var advertisData = devices.devices[i].advertisData;

var mac = _this.ab2hex(advertisData);

if (mac == lockNum) {

_this.setData({

deviceId: devices.devices[i].deviceId

});

wx.hideLoading()

_this.stopBluetoothDevicesDiscovery();

_this.openLock(flg)

break

}

}

}


})


},

complete: function (res) {

}

})

},

fail: function (res) {

console.log(res)

}

})


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

2 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    03-26

    你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    03-26
    赞同
    回复
  • Joker、
    Joker、
    11-04

    你好,请问你解决了这个问题吗

    11-04
    赞同
    回复