蓝牙底层模块
支持 uni 和微信小程序
bluetooth.js
蓝牙服务的封装
类属性 | 类型 | 描述 |
---|
deviceInfo | Object | 设备信息 |
connectStatus | String | 连接状态:0 未连接或连接断开,允许连接;1 正在连接,不允许再连接;2 已连接,不允许再连接 |
isInitializedAdapter | Boolean | 蓝牙适配器是否初始化完成 |
isAvailableAdapter | Boolean | 蓝牙适配器是否可用 |
HTTP | Class | 请求服务 |
方法
类方法 | 入参 | 返回 | 描述 |
---|
openAndListenBluetoothAdapter | - | Promise 对象 | 打开和监听蓝牙适配器 |
scanCallback | scanCallbackParams | Promise 对象 | 扫描外设 |
stopScanCallback | - | Promise 对象 | 停止扫描 |
connectCallback | connectCallbackParams | Promise 对象 | 连接外设,连接指定的外设,需要传入外设对象。注意实现返回对象的 then 和 catch 方法,监听接口是否调用成功。 |
disconnectCallback | - | Promise 对象 | 断开连接 |
readCallback | readCallbackParams | Promise 对象 | 读某个服务下的某个特征值。 |
writeCallback | writeCallbackParams | Promise 对象 | 向蓝牙模块写入数据 |
notifyCallback | notifyCallbackParams | Promise 对象 | 监听特征值改变 |
registerDidUpdateConnectStatusCallback | cb 回调函数 | - | 连接状态发生改变时,回调此方法。 |
registerDidDiscoverDeviceCallback | cb 回调函数 | - | 当扫描到设备时回调此方法 |
registerDidUpdateValueForCharacteristicCallback | cb 回调函数 | - | 当监听的特征值改变时回调此方法 |
callBackDiscoverDevice | scanCallbackParams 的入参 | - | 回调发现外设 |
scanCallbackParams
| 参数 | 类型 | 描述 |
| :----------------: | :-----------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | ------------------------------------ |
| services | Array | 要搜索的蓝牙设备主 service 的 uuid 列表。某些蓝牙设备会广播自己的主 service 的 uuid。如果设置此参数,则只搜索广播包有对应 uuid 的主服务的蓝牙设备。建议主要通过该参数过滤掉周边不需要处理的其他蓝牙设备。 |
| allowDuplicatesKey | Boolean | 是否允许重复上报同一设备。如果允许重复上报,则 wx.onBlueToothDeviceFound 方法会多次上报同一设备,但是 RSSI 值会有不同。 |
| interval | Number | 上报设备的间隔。0 表示找到新设备立即上报,其他数值根据传入的间隔上报。 |
| powerLevel | String | 默认 medium 扫描模式,越高扫描越快,也越耗电, 仅安卓 7.0.12 及以上支持。 |
| timeout | Number | 扫描超时时间,毫秒。在该时间内未扫描到符合要求的设备,上报超时。默认 1500ms,-1 表示无限超时 |
| deviceName | String | 通过蓝牙名称过滤,需要匹配的设备名称 |
| containName | String | String[] | 通过蓝牙名称过滤,需要包含的设备名称 |
optionsServices
参数 | 类型 | 描述 |
---|
uuid | String | 服务 uuid |
serviceId | String | 筛选哪个服务用到的 id |
serviceIdArr | Array | 筛选哪个服务用到的 id(用到多个服务的时候) |
connectCallbackParams
参数 | 类型 | 描述 |
---|
device | deviceObject | 指定连接的外设对象,从 registerDidDiscoverDeviceCallback 注册的回调中得到 |
timeout | Number | 连接超时时间,毫秒,默认 15000ms |
device
参数 | 类型 | 描述 |
---|
deviceExtra | String | 设备扩展数据, json 字符串 |
deviceExtra.uuid | String | 蓝牙连接唯一标识 ios 的 uuid,传这个值 |
deviceId | String | 蓝牙连接唯一标识 android 的 mac 地址,传这个值,这样 就可以做到,ios android 跳过扫描直接连接 |
readCallbackParams
参数 | 类型 | 描述 |
---|
suuid | String | 特征对应的服务 uuid |
cuuid | String | 写入特征 uuid |
writeCallbackParams
参数 | 类型 | 描述 |
---|
suuid | String | 特征对应的服务 uuid |
cuuid | String | 写入特征 uuid |
value | Hex string | 16 进制字符串 |
notifyCallbackParams
参数 | 类型 | 描述 |
---|
suuid | String | 特征对应的服务 uuid |
cuuid | String | 写入特征 uuid |
state | Hex string | 是否启用 notify,可以通过重复调用接口改变此属性打开/关闭监听 |
enum.js
所有错误的集合包括微信的错误和自己定义的错误
code | message |
---|
210 | 发现外设 |
211 | 扫描完成 |
220 | 蓝牙打开 |
221 | 正在连接 |
222 | 连接成功 |
223 | 断开成功 |
410 | 扫描超时 |
420 | 蓝牙关闭 |
421 | 连接失败 |
422 | 连接断开 |
2010 | 扫描接口成功调用 |
2020 | 停止扫描接口成功调用 |
2030 | 连接接口成功调用 |
2040 | 断开接口成功调用 |
2050 | 读特征值接口成功调用 |
2060 | 写入数据接口成功调用 |
2070 | 监听特征值接口成功调用 |
4000 | 当前基础库版本低,请更新微信版本 |
4010 | 扫描失败,请稍后重试 |
4011 | 扫描错误:蓝牙被关闭 |
4012 | 没有找到指定的蓝牙服务 |
4013 | 请打开手机蓝牙,并进入手机应用设置开启微信的蓝牙授权,方可查找设备 |
4020 | 停止蓝牙扫描失败 |
4021 | 请打开手机蓝牙后再试 |
4030 | 蓝牙连接失败,请稍后重试 |
4031 | 请开启手机蓝牙后再试 |
4032 | 蓝牙正在连接 |
4033 | 蓝牙连接超时,请稍后重试 |
4034 | 蓝牙连接设备 id 不能为空 |
4040 | 蓝牙断开失败 |
4050 | 读特征值失败 |
4051 | 蓝牙未连接 |
4052 | 当前特征不支持读操作 |
4053 | 没有找到指定服务 |
4054 | 没有找到指定特征值 |
4060 | 写入数据失败 |
4061 | 蓝牙未连接 |
4062 | 当前特征不支持写操作 |
4063 | 没有找到指定服务 |
4064 | 没有找到指定特征值 |
4070 | 监听特征值失败 |
4071 | 蓝牙未连接 |
4072 | 当前特征不支持监听操作 |
4073 | 没有找到指定服务 |
4074 | 没有找到指定特征值 |
extends.js
log 输出
tool.js
常用的蓝牙传输数据的方法,继承此类的各个硬件的 SDK,可以调用这里面的方法
promisify.js
小程序 api 的封装,支持 promise
http.js
请求服务的封装,继承此类的各个硬件的 SDK,可以使用此服务发送请求