收藏
回答

关于蓝牙连接功能

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug 蓝牙功能 客户端 6.7.2 2.2.3

小程序流程描述:

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

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

最后一次编辑于  2018-09-06  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

1 个回答