微信小程序的蓝牙使用

微信小程序的蓝牙使用

1.蓝牙分类

蓝牙基础率/增强数据率 (BR/EDR)

常用在对数据传输速率有要求的设备上,如蓝牙音箱等

低功耗 (LE) 蓝牙

常用在低功耗、对续航有要求的设备上,智能穿戴设备、血糖仪等等

2.蓝牙的定义和工作

设备定义

对LE协议,对设备定义了若干角色,主要有外围设备(peripheral)和中心设备(central)

外围设备:提供数据,广播自己,与central建立连接。

中心设备:扫描外围设备,建立连接,使用peripheral提供的服务,这个角色一般由手机担任。

数据交互

连接建立后,双方数据交互基于GATT(Generic Attribute Profile) 规范,根据该规范可以定义出一个个配置文件(Profile),描述该蓝牙设备提供的服务(Service)

通信过程中最主要的三个概念,profile配置文件,characteristic特性,service服务。

profile:不是真实存在,只是预先定义的service集合,

service:蓝牙设备能提供的服务。一个设备可以提供多个服务,每个服务可以有多个特性,每个服务对应唯一UUID

characteristic: GATT中的最小单元,每个特性由一个value和多个描述特性的Desciptor.

总结:通信就是和蓝牙service的特定characteristic进行读写达到通信目的。

3.小程序提供的蓝牙接口和步骤

1.扫描发现蓝牙的外围设备
2.连接蓝牙外围设备
3.查找设备所提供的device
4.读写指定服务的Value of characteristic

4.常见问题

部分安卓机型使用蓝牙必须获得定位权限。(因为蓝牙可以定位)

建立连接和关闭连接必须要成对调用

MTU(最大传输单元)系统限定为 20 字

5.(例程)实际流程

所需API:

wx.openBluetoothAdapter打开蓝牙适配器(成功:wx.startBluetoothDevicesDiscovery开始搜索附近蓝牙外围设备,失败:根据返回的errCode值进行相应处理)

wx.getBluetoothAdapterState获取蓝牙适配器状态(是否可用,是否在搜索)

(如果返回值是在搜索,执行wx.onBluetoothDeviceFound获得找到的蓝牙外围设备)

(如果返回值是可用,执行wx.startBluetoothDevicesDiscovery搜索蓝牙外围设备)

wx.stopBluetoothDevicesDiscovery停止搜索

wx.createBLEConnection创建低功耗蓝牙连接(success:wx.getBLEDeviceServices成功后获取设备服务ID(success:getBLEDeviceCharacteristics:成功后获得设备特性ID))

读特征值wx.readBLECharacteristicValue(设备id、服务id、特征id(uuid))

写特征值wx.writeBLECharacteristicValue

流程:

"openBluetoothAdapter"开始扫描

"stopBluetoothDevicesDiscovery"停止扫描

"createBLEConnection"创建连接

"writeBLECharacteristicValue"写数据

"closeBLEConnection"断开连接

"closeBluetoothAdapter"结束流程

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值