关于蓝牙连接功能
发布于 7 年前 作者 mengjie 17409 次浏览 来自 问答

小程序流程描述:

进入小程序,初始化蓝牙,开启一系列监听

然后用户扫描二维码—>获取设备的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

回到顶部