微信小程序连接蓝牙血压仪

微信小程序连接蓝牙血压仪,第1张

此方法可以检测中心设备是否支持蓝牙功能,是否打开蓝牙开关,如不符合上述条件,返回失败建wxopenBluetoothAdapter(OBJECT)和wxcloseBluetoothAdapter(OBJECT)成对使用wxcloseBluetoothAdapter:关闭蓝牙模块,使其进入未初始化状态。调用该方法将断开所有已建立的链接并释放系统资源;

2搜索指定设备

wxstartBluetoothDevicesDiscovery(OBJECT)开始搜寻附近的蓝牙外围设备

wxgetBluetoothDevices(OBJECT)获取在小程序蓝牙模块生效期间所有已发现的蓝牙设备

wxonBluetoothDeviceFound(CALLBACK) 监听寻找到新设备的事件

注意: 搜索蓝牙wxstartBluetoothDevicesDiscovery(OBJECT) *** 作比较耗费系统资源,在搜索并连接到设备后调用 wxstopBluetoothDevicesDiscovery(OBJECT) 方法停止搜索。

正确的流程是

初始化蓝牙wxopenBluetoothAdapter(OBJECT)

开始搜索蓝牙 wxstartBluetoothDevicesDiscovery(OBJECT)

所有已发现的蓝牙设备wxgetBluetoothDevices(OBJECT)

监听寻找到新设备的事件wxonBluetoothDeviceFound(CALLBACK)

连接低功耗蓝牙设备wxcreateBLEConnection(OBJECT)

获取蓝牙设备所有 service(服务) wxgetBLEDeviceServices(OBJECT)

获取蓝牙设备某个服务中的所有 characteristic(特征值)wxgetBLEDeviceCharacteristics(OBJECT)

启用低功耗蓝牙设备特征值变化时的 notify 功能wxnotifyBLECharacteristicValueChange(OBJECT)

写入wxwriteBLECharacteristicValue(OBJECT)

我实现的小程序模块自动连接(根据需要,可改手动),是在小程序初始化完成时开始自动调用执行。

大致流程:

开启蓝牙适配;

获取蓝牙适配器状态,判断设备蓝牙是否可用;

判断蓝牙适配器可用时开启扫描蓝牙设备和开启获取已连接的蓝牙设备;

如果开启扫描蓝牙设备失败 5 s 后,自动再次开启扫描;

开启扫描蓝牙设备成功后,开启监听已扫描的设备;

如果已扫描到的新设备,包含特定名称规律,则开始连接该设备;

开启获取已连接蓝牙设备,成功后,连接包含特定名称规律的设备;

两者都无法搜索到相应设备,则等待 5 s,重新搜索;

开始连接某设备时停止扫描设备,停止循环获取已连接设备;

连接成功后停止扫描设备,停止循环获取已连接设备。

​下面,我们一步步来完成这个流程。

开始连接蓝牙设备

1 开启连接

appjs的onLaunch()方法里中,我们调用thisstartConnect();来开启连接,d出提示框,进行配对。如果失败,则提示设备蓝牙不可用,同时开启蓝牙适配器状态监听。

2 获取本机蓝牙状态

调用thisgetBluetoothAdapterState()获取本机蓝牙适配器状态,判断是否可用。若available为false,则为用户没有开启系统蓝牙。

同时,判断程序还没有开始搜索蓝牙设备,调用thisstartBluetoothDevicesDiscovery()开始扫描附近的蓝牙设备,以及thisgetConnectedBluetoothDevices(),获取本机已配对的蓝牙设备。

3 开始搜索新设备

开始搜索蓝牙设备startBluetoothDevicesDiscovery(),提示蓝牙搜索。

4 获取已配对的蓝牙设备

需要注意的是,参数services(Array)是必填的,但是官方示例中以及各种坑爹 demo 里从没见过有谁填写。不填写这个属性此方法,将无法获取到任何已配对设备。

如果要调用此方法,则代表需要连接特定设备,并且知道该设备的一个主服务serviceId。

如暂时不知道这个 ID,可以先手动连接一次想要连接的设备,然后获取service列表,记录属性primary为true的值至少一个。5 处理搜索功能开启失败的情况

如果搜索功能启动失败,回到第 2 步,重新检查蓝牙适配器。如果可用,开启蓝牙搜索功能并开启发现附近蓝牙设备事件监听:thisonBluetoothDeviceFound()。

此方法可自定义过滤一些无效的蓝牙设备,比如name为空的,或是产品开发中,需要过滤设备名称不含有特定规律字符串的设备。

6 自动配对设备

在第 5 步中发现了某个想配对的设备,则获取到该设备的deviceId,然后用thisstartConnectDevices()接口,开始配对该设备。

开启连接后,为了避免出现冲突,一旦开启连接,则需要终止扫描附近蓝牙设备、终止读取本机已配对设备

7 连接成功后握手

连接成功后,使用thisgetService(deviceId)接口,获取设备的所有服务。

8 读取服务的特征值

9 意外处理

如果扫描到的设备中没有想要连接的设备,可以尝试使用系统蓝牙手动配对,然后再小程序中调用getConnectedBluetoothDevices()获取本机已配对的蓝牙设备,然后过滤设备(可能获取多个已配对的蓝牙设备)。

然后,将已获取的蓝牙设备deviceId列表放入到一个数组中,然后调用自定义方法thisloopConnect();

思路:通过递归调用获取已配对蓝牙设备的,如果获取到了就去连接,如果devicesId[x]为空,说明上传调用时,获取到的已配对设备全部连接失败了。

这时候,我们需要则开启重新获取已配对蓝牙设备,并开启扫描附近蓝牙设备。

10 自动循环重试

startConnectDevices('loop', array)方法,是当获取已配对蓝牙设备进行连接时调用。

其中的处理逻辑上文已经贴出,意思就是在连接失败后fail方法里累加一个全局变量,然后回调loopConnect(array)方法。

11 手动连接

上文介绍的方法是为了直接自动连接,如果不需要自动连接,可使用方法getBluetoothDevices(),获取已扫描到的蓝牙设备的列表。

开发者可以做个页面显示出设备名,用户点击某个设备后,才开始连接。

需要注意的事项

thatserviceId是在初始化时设置的,由于对需要连接设备的主服务serivceId和各种特征值都是已知的,因此可以这样做。如果不可知,可以做一个扫描方法自己检查特征值的用途。

连接成功后的writeBLECharacteristicValue和openNotifyService *** 作需要注意,如果同时开启这两项 *** 作要先调用wirte再开启notify(原因未知,个人心得)。

3、经提醒,我发现还可以再完善一下在onBlueToothAdapterStateChange()监听蓝牙适配器状态,以此判断连接过程中、连接后用户开关了设备蓝牙。如果判断到关了蓝牙,发出开启蓝牙的提示;如果监听到开启了,就重新回到第 1 步。

可参考以下无法连接蓝牙设备处理步骤:

1、确认蓝牙设备电量与连接范围

确认蓝牙设备电量充足,蓝牙连接有效距离一般为10米左右,如果双方设备距离较远或中间存在障碍物,则可能搜索不到蓝牙设备。

2、确认蓝牙设备连接状态

确保没有其他手机连接此蓝牙设备。

3、重新配对蓝牙设备

请参考蓝牙设备说明书 *** 作,确保设备处于可配对状态,并重新配对设备。

注:

1)vivo TWS 1/vivo TWS Neo/vivo TWS 2/vivo TWS 2e配对方法:将两只耳机放入充电盒内,打开盒盖,长按充电盒功能键2秒直至指示灯呈白色闪烁,手机蓝牙搜索配对。或者长按充电盒功能键15秒,指示灯呈橙色并快速闪烁,耳机恢复出厂设置并重新进入配对状态。

2)vivo WATCH配对方法:初次配对通过手机扫描手表屏幕二维码,下载安装“健康”App,打开软件,注册登录vivo帐号,点击设备页,添加设备,配对vivo WATCH。健康App是连接管理手表的必备应用,vivo手机用户前往应用商店下载并安装App,苹果手机用户前往App Store搜索下载安装App。后期配对按压vivo WATCH上键--设置--系统菜单--恢复配对,通过健康App搜索连接,或按压vivo WATCH上键--设置--系统菜单--恢复出厂,再通过健康App搜索连接。

3)其他品牌和型号的蓝牙设备,可以查看对应产品说明书了解配对方法。

4、进行对比测试

同时使用两个无配对记录的手机搜索,如果其他手机也不能搜索到设备,则可能是蓝牙设备故障。

5、重置网络设置

进入设置--系统管理--备份与重置--重置网络设置--重置设置,再使用查看。

注:重置网络设置会重置WLAN、移动数据网络和蓝牙连接记录。

6、升级系统版本

请您将手机升级至最新版本使用查看。

7、再次点击已配对的蓝牙设备进行连接时,会提示“请确认“XX设备”已打开,在通信范围内,且未连接其他设备”:两台设备的蓝牙进行配对成功即可使用蓝牙的相关功能,不需要再次点击蓝牙设备进行连接,此提示并非手机异常,请您放心使用。

8、服务中心检测

若以上方法未能解决问题,请提前备份好手机数据,携带手机和购机凭证前往vivo客户服务中心检测,进入浏览器搜索vivo官网--服务--服务中心--查看全部--选择省市查询当地的服务中心地址以及****。

以上就是关于微信小程序连接蓝牙血压仪全部的内容,包括:微信小程序连接蓝牙血压仪、前端调用蓝牙接口怎么设置、vivos12pro微信小程序蓝牙连不上等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10164223.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存