小程序流程描述:
进入小程序,初始化蓝牙,开启一系列监听
然后用户扫描二维码—>获取设备的Mac—>(此Mac会通过设备的广播数据中存在advertisData)—>开始搜索—>匹配—>连接—>后续蓝牙操作;
情景描述:
android: 有大概率搜索不到设备,然后我仔细的看了文档,发现有下面这句话
若小程序在之前已有搜索过某个蓝牙设备,并成功建立链接,可直接传入之前搜索获取的deviceId直接尝试连接该设备,无需进行搜索操作。
然后我就修改代码,如果再次准备连接的设备与上次连接的相同,就直接连接,这样的确解决了问题,
但是,如果我再次准备连接的设备与上次连接的不同,那么我就需要再去搜索,依然有可能搜索不到。
然后,我调用closeBluetoothAdapter方法,然后再次调用openBluetoothAdapter,然后再去搜索,可以搜索到;
ios: 如果再次准备连接的设备与上次连接的不同
扫码完成后,调用closeBluetoothAdapter方法,然后再次调用openBluetoothAdapter
这个时候有概率得不到回调(complete),可能是closeBluetoothAdapter的回调,也可能是openBluetoothAdapter的回调,
问题描述:
android 为何需要调用closeBluetoothAdapter方法,然后再次调用openBluetoothAdapter,才能搜索到设备
ios 为何会得不到回调 (通过日志发现,ios扫码的结果,在onshow前面触发,然后我已经开始 closeAdapter—> openAdapter ,这个时候才能得到onshow的回调,会不会是这里影响的, android没有前面说的这个问题)
关于closeAdapter—> openAdapter 这个方法,我尝试过 Callback ,promise 都有可能 没有结果
appid: wxd202da3e74545336
微信号:TXlEdW8wMA== (base64)
二维码内容:
https://wx.qq.com/wxapp/sign/?devn=设备名称&devId=设备广播的mac地址
比如:https://wx.qq.com/wxapp/sign/?devn=TKB_KT_168&devId=a53d7e000878
openBluetoothAdapter没有回调似乎是另一个问题。https://developers.weixin.qq.com/community/develop/doc/00066a914f0f88ec73978d05a51000?highLine=%E8%93%9D%E7%89%99