欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 实战分享,蓝牙在小程序中的应用!

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:740

高端HTML5响应式企业通用网

2020-05-06   浏览:521

html5响应式外贸网站英文版

2020-05-08   浏览:510

HTML5自适应律师工作室类网

2020-04-04   浏览:504

HTML5影视传媒文化公司类网

2020-05-12   浏览:502

实战分享,蓝牙在小程序中的应用!

发布时间:2020-12-25  
导语

蓝牙在日常生活中广泛使用的一项技术,小程序给了我们前端工程师一个控制蓝牙的方法,带上你的设备,来看看怎么控制你的蓝牙设备吧。

1. 背景介绍

蓝牙是爱立信公司创立的一种无线技术标准,为短距离的硬件设备提供低成本的通信规范。蓝牙规范由蓝牙技术联盟(Bluetooth Special Interest Group,简称SIG)管理,在计算机,手机,传真机,耳机,汽车,家用电器等等很多场景广泛使用。蓝牙具有以下一些特点:

(1) 免费使用:使用的工作频段在2.4GHz的工科医(ISM)频段,无需申请许可证。

(2) 功耗低:BLE4.0包含了一个低功耗标准(Bluetooth Low Energy),可以让蓝牙的功耗显著降低

(3) 安全性高:蓝牙规范提供了一套安全加密机制和授权机制,可以有效防范数据被窃取

(4) 传输率高:目前最新BLE4.0版本,理论传输速率可达3Mbit/s(实际肯定达不到),理论覆盖范围可达100米。

2.小程序蓝牙介绍

小程序API提供了一套蓝牙操作接口,所以作为我们前端开发人员可以更加方便的进行蓝牙设备开发,而无需了解安卓和IOS的各种蓝牙底层概念。小程序的蓝牙操作大多都是通过异步调用来处理的,这里面就存在着一些坑,后面会详细介绍。在使用小程序蓝牙API之前有几个概念或者说术语需要预先了解:

(1) 蓝牙终端:我们常说的硬件设备,包括手机,电脑等等。

(2) UUID:是由子母和数字组成的40个字符串的序号,根据硬件设备有关联的唯一ID。

(3) 设备地址:每个蓝牙设备都有一个设备地址deviceId,但是安卓和IOS差别很大,安卓下设备地址就是mac地址,但是IOS无法获取mac地址,所以设备地址是针对本机范围有效的UUID,所以这里需要注意,后面会介绍。

(4) 设备服务列表:每个设备都存在一些服务列表,可以跟不同的设备进行通信,服务有一个serviceId来维护,每个服务包含了一组特征值。

(5) 服务特征值:包含一个单独的value值和0 –n个用来描述characteristic 值(value)的descriptors。一个characteristics可以被认为是一种类型的,类似于一个类。

(6) ArrayBuffer:小程序中对蓝牙数据的传递是使用ArrayBuffer的二进制类型来的,所以在我们的使用过程中需要进行转码。

3. API总览

小程序对蓝牙设备的操作有18个API

API名称 说明
openBluetoothAdapter   初始化蓝牙适配器,在此可用判断蓝牙是否可用  
closeBluetoothAdapter   关闭蓝牙连接,释放资源  
getBluetoothAdapterState   获取蓝牙适配器状态,如果蓝牙未开或不可用,这里可用检测到  
onBluetoothAdapterStateChange   蓝牙适配器状态发生变化事件,这里可用监控蓝牙的关闭和打开动作  
startBluetoothDevicesDiscovery   开始搜索设备,蓝牙初始化成功后就可以搜索设备  
stopBluetoothDevicesDiscovery   当找到目标设备以后需要停止搜索,因为搜索设备是比较消耗资源的操作  
getBluetoothDevices   获取已经搜索到的设备列表  
onBluetoothDeviceFound   当搜索到一个设备时的事件,在此可用过滤目标设备  
getConnectedBluetoothDevices   获取已连接的设备  
createBLEConnection   创建BLE连接  
closeBLEConnection   关闭BLE连接  
getBLEDeviceServices   获取设备的服务列表,每个蓝牙设备都有一些服务  
getBLEDeviceCharacteristics   获取蓝牙设备某个服务的特征值列表  
readBLECharacteristicValue   读取低功耗蓝牙设备的特征值的二进制数据值  
writeBLECharacteristicValue   向蓝牙设备写入数据  
notifyBLECharacteristicValueChange   开启蓝牙设备notify提醒功能,只有开启这个功能才能接受到蓝牙推送的数据  
onBLEConnectionStateChange   监听蓝牙设备错误事件,包括异常断开等等  
onBLECharacteristicValueChange   监听蓝牙推送的数据,也就是notify数据  
4. 主要流程

蓝牙通信的一个正常流程是下面的图示

(1) 开启蓝牙:调用openBluetoothAdapter来开启和初始化蓝牙,这个时候可以根据状态判断用户设备是否支持蓝牙

(2) 检查蓝牙状态:调用getBluetoothAdapterState来检查蓝牙是否开启,如果没有开启可以在这里提醒用户开启蓝牙,并且能在开启后自动启动下面的步骤

这里有一个坑:IOS里面蓝牙状态变化以后不能马上开始搜索,否则会搜索不到设备,必须要等待2秒以上。