基于微信小程序防止安卓手机与蓝牙设备数据传输丢失的方法技术

技术编号:35990015 阅读:10 留言:0更新日期:2022-12-17 23:04
本发明专利技术公开了一种基于微信小程序防止安卓手机与蓝牙设备数据传输丢失的方法,判断设备的软硬件环境是否支持低功耗蓝牙;打开蓝牙适配器,获取所有发现的新设备,以及与当前手机已连接的设备,并筛选设备展示可用相关设备列表,并连接此蓝牙设备;获取该设备的所有服务,并获取该服务的特征值以及服务uuid。本发明专利技术在开启蓝牙设备notify监听的同时,在硬件业务回包的时候设置合适的业务等待,一般等待时间45ms到60ms左右,这样能对Android手机也能保证接受得到完整的数据;该设计中的硬件业务等待能确保Android能监听到蓝牙设备特征值变化而获得蓝牙设备推送的完整的信息。化而获得蓝牙设备推送的完整的信息。化而获得蓝牙设备推送的完整的信息。

【技术实现步骤摘要】
基于微信小程序防止安卓手机与蓝牙设备数据传输丢失的方法


[0001]本专利技术涉及微信小程序平台领域,蓝牙无线通讯
,尤其涉及一种基于微信小程序防止安卓手机与蓝牙设备数据传输丢失的方法。

技术介绍

[0002]在所连接的蓝牙设备的服务中,没有服务支持特征值read为true的情况下,读取不了特征值的二进制数据;有服务支持特征值notify为true的情况下,可以通过监听蓝牙设备特征值的变化,但是仅限于iOS系统,当移动设备属于Android,与iOS系统便会存在一定的系统策略差异,开发者先通过notify启用了监听,期望监听到write之后特征值的改变;但对于一个既支持write又支持writeWithoutResponse的characteristic,Android会选择writeWithoutResponse,iOS会选择write,write会有回调,而writeWithoutResponse则不会有。
[0003]在所连接的蓝牙设备的服务中,没有服务支持特征值read为true的情况下,保证Android与蓝牙设备的数据读取;现阶段尚未有恰当的方法解决微信小程序中Android与IOS的蓝牙指令写策略差异导致的数据读取不稳定的问题。
[0004]因此,本专利技术提供一种基于微信小程序防止安卓手机与蓝牙设备数据传输丢失的方法,可以很好的解决这个问题。

技术实现思路

[0005]为解决现有技术中存在的不足,本专利技术的目的在于,提供一种基于微信小程序防止安卓手机与蓝牙设备数据传输丢失的方法。
[0006]为实现本专利技术的目的,本专利技术所采用的技术方案是:
[0007]一种基于微信小程序防止安卓手机与蓝牙设备数据传输丢失的方法,包括以下步骤:
[0008]步骤一,进行项目的初始化以及脚本文件的初始化,并判断设备的软硬件环境是否支持低功耗蓝牙;
[0009]步骤二,打开蓝牙适配器,并初始化蓝牙模块;
[0010]步骤三,打开蓝牙搜索,扫描附近的蓝牙外围设备;
[0011]步骤四,获取到所有发现的新设备,以及与当前手机已连接的设备,并筛选设备,展示可用相关设备列表;
[0012]步骤五,保存步骤四获取的蓝牙设备id,并连接此蓝牙设备,然后关闭蓝牙搜索;
[0013]步骤六,获取该设备的所有服务,并获取该服务的特征值以及依据特征值获取的服务uuid;
[0014]步骤七,开启蓝牙设备的特征值变化时的notify功能,判断特征值是否支持read;
[0015]步骤八,如果特征值不支持read,则对蓝牙设备进行写入指令并接收蓝牙设备推
送返回的信息,同时要求硬件在发送回包指令的时候执行45ms到60ms左右的业务等待。
[0016]进一步地,步骤一中,在需要进行数据传输的脚本文件中,调用app.getWxVersion()、app.getPlatform()判断当前微信版本以及设备平台是否支持低功耗蓝牙。
[0017]进一步地,步骤二中,调用wx.openBluetoothAdapter()初始化蓝牙模块。
[0018]进一步地,步骤三中,调用wx.startBluetoothDevicesDiscovery()打开蓝牙搜索。
[0019]进一步地,步骤四中,调用wx.onBluetoothDeviceFound()获取到所有发现的新设备,调用wx.getBluetoothDevices()获取与当前手机已连接的设备;并过滤重复的设备,保存好返回值中需要连接的设备id和设备name。
[0020]进一步地,步骤五中,调用wx.createBLEConnection({deviceId:deviceId})连接此蓝牙设备,然后通过wx.stopBluetoothDevicesDiscovery()关闭蓝牙搜索。
[0021]进一步地,步骤六中,调用wx.getBLEDeviceServices(deviceId:deviceId)以获取蓝牙设备的所有服务,选择指定的服务并获取该服务的特征值;
[0022]通过wx.getBLEDeviceCharacteristics(deviceId:deviceId,serviceId:serviceId)获取其特征值,根据特征值(indicate,notify,read,write)的值获取不同服务的uuid,保存其服务uuid,对指定的特征值保存用于其他接口的调用。
[0023]进一步地,步骤七中,通过wx.notifyBLECharacteristicValueChange(deviceId,servicesId,characteristicId)开启蓝牙设备的特征值变化时的notify功能。
[0024]进一步地,步骤八中,如果特征值不支持read,调用wx.writeBLECharacteristicValue对蓝牙设备进行写入指令,并在wx.onBLECharacteristicValueChange(res)回调里接收蓝牙设备推送返回的信息,同时要求硬件在发送回包指令的时候,执行45ms到60ms左右的业务等待。
[0025]本专利技术的有益效果在于,与现有技术相比,本专利技术基于微信小程序平台,使用低功耗蓝牙技术BLE,在达到了用户之间数据传输时速度比以往更快,安全性能更高,延迟时间更短,耗电量更低的基础上;解决使用Android手机对特征值read不支持的蓝牙设备进行数据交互时,数据传输与接收时数据缺失或丢失的问题。
[0026]本专利技术在开启蓝牙设备notify监听的同时,在硬件业务回包的时候一定要设置合适的业务等待,一般等待时间45ms到60ms左右,这样对Android手机也能保证接受得到完整的数据;该设计中的硬件业务等待能确保Android能监听到蓝牙设备特征值变化而获得蓝牙设备推送的完整的信息。
附图说明
[0027]图1是本专利技术所述的基于微信小程序防止安卓手机与蓝牙设备数据传输丢失的方法流程图。
具体实施方式
[0028]下面结合附图和实施例对本专利技术的技术方案作进一步的说明。以下实施例仅用于更加清楚地说明本专利技术的技术方案,而不能以此来限制本申请的保护范围。
[0029]如图1所示,本专利技术所述的基于微信小程序防止安卓手机与蓝牙设备数据传输丢
失的方法,具体包括以下步骤:
[0030]步骤一,进行项目的初始化以及脚本文件的初始化,并判断设备的软硬件环境是否支持低功耗蓝牙(BLE);
[0031]在需要进行数据传输的脚本文件中,调用app.getWxVersion()、app.getPlatform()判断当前微信版本以及设备平台是否支持低功耗蓝牙,与经典蓝牙(BR/EDR)相比,微信小程序采用低功耗蓝牙技术,其组网更加简单,在10米至100米以内,是近距离设备进行无线通信的首选,而且其近距离优势明显,耗电极低,传输速度更快。
[0032]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于微信小程序防止安卓手机与蓝牙设备数据传输丢失的方法,其特征在于,包括以下步骤:进行项目的初始化以及脚本文件的初始化,并判断设备的软硬件环境是否支持低功耗蓝牙;打开蓝牙适配器,并初始化蓝牙模块;打开蓝牙搜索,扫描附近的蓝牙外围设备;获取到所有发现的未连接过的蓝牙设备以及连接过的蓝牙设备,并筛选设备,展示相关设备列表,选取指定蓝牙设备,在扫描获取的蓝牙列表中获取指定蓝牙设备的id;保存获取的蓝牙设备id,并连接此蓝牙设备,然后关闭蓝牙搜索;获取该设备的所有服务,并获取该服务的特征值以及依据特征值获取的服务uuid;开启蓝牙设备的特征值变化时的notify功能,判断特征值是否支持read;如果特征值不支持read,则对蓝牙设备进行写入指令并接收蓝牙设备推送返回的信息,同时要求硬件在发送回包指令的时候执行45ms到60ms左右的业务等待。2.根据权利要求1所述的基于微信小程序防止安卓手机与蓝牙设备数据传输丢失的方法,其特征在于,进行项目的初始化以及脚本文件的初始化,并判断设备的软硬件环境是否支持低功耗蓝牙,包括在需要进行数据传输的脚本文件中,调用app.getWxVersion()、app.getPlatform()判断当前微信版本以及设备平台是否支持低功耗蓝牙。3.根据权利要求1所述的基于微信小程序防止安卓手机与蓝牙设备数据传输丢失的方法,其特征在于,打开蓝牙适配器,并初始化蓝牙模块,包括调用wx.openBluetoothAdapter()初始化蓝牙模块。4.根据权利要求1所述的基于微信小程序防止安卓手机与蓝牙设备数据传输丢失的方法,其特征在于,打开蓝牙搜索,扫描附近的蓝牙外围设备,包括调用wx.startBluetoothDevicesDiscovery()打开蓝牙搜索。5.根据权利要求1所述的基于微信小程序防止安卓手机与蓝牙设备数据传输丢失的方法,其特征在于,获取到所有发现的未连接过的蓝牙设备以及连接过的蓝牙设备,并筛选设备,展示相关设备列表,选取指定蓝牙设备,在扫描获取的蓝牙列表中获取指定蓝牙设备的id,包括调用wx.onBluetoothDeviceFound()获取到所有发现的新设备,调用wx.getBluetoothDevices()获取与当前手机已连接的设备;并过滤重复的设备,保存好返回值中需要连接的设备id和设备name。6.根据权利要求1所述的基于微信小程序防止安卓手机与蓝牙设备数...

【专利技术属性】
技术研发人员:唐超宇李迎新王薇
申请(专利权)人:上海术理智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1