蓝牙API
2021-11-08 本文已影响0人
bianruifeng
内容来源:https://www.jianshu.com/p/42a8f71110e8
API简介
- 微信小程序目前有蓝牙 API 共 18 个
- 操作蓝牙适配器的共有 4 个,分别是
wx.openBluetoothAdapter
初始化蓝牙适配器
wx.closeBluetoothAdapter
关闭蓝牙模块
wx.getBluetoothAdapterState
获取本机蓝牙适配器状态
wx.onBluetoothAdapterStateChange
监听蓝牙适配器状态变化事件 - 连接前使用的共有 4 个,分别是
wx.startBluetoothDevicesDiscovery
开始搜寻附近的蓝牙外围设备
wx.stopBluetoothDevicesDiscovery
停止搜寻附近的蓝牙外围设备
wx.getBluetoothDevices
获取所有已发现的蓝牙设备
wx.onBluetoothDeviceFound
监听寻找到新设备的事件 - 连接和断开时使用的共有 2 个,分别是
wx.createBLEConnection
连接低功耗蓝牙设备
wx.closeBLEConnection
断开与低功耗蓝牙设备的连接 - 连接成功后使用的共有 8 个,分别是
wx.getConnectedBluetoothDevices
根据 uuid 获取处于已连接状态的设备
wx.getBLEDeviceServices
获取蓝牙设备所有 service(服务)
wx.getBLEDeviceCharacteristics
获取蓝牙设备所有 characteristic(特征值)
wx.readBLECharacteristicValue
读取低功耗蓝牙设备的特征值的二进制数据值
wx.writeBLECharacteristicValue
向低功耗蓝牙设备特征值中写入二进制数据
wx.notifyBLECharacteristicValueChange
启用低功耗蓝牙设备特征值变化时的 notify 功能
wx.onBLECharacteristicValueChange
监听低功耗蓝牙设备的特征值变化
wx.onBLEConnectionStateChange
监听低功耗蓝牙连接的错误事件
内容来源:https://www.cnblogs.com/easyidea/p/13109806.html
微信小程序只支持BLE每次发送数据不大于20个字节
要解决发送数据大于20个字节的问题,最简单实用的方式就是分包发送。
- 小程序源码
//要发送的字符串(要在起始位置添加起始字符,结束位置添加结束字符)
let order = that.stringToBytes(recs);
let byteLen = order.byteLength;//长度
let pos = 0; //字符位置
let tempBuffer; //一次发送的数据
var i = 0; //计数
//为了安全每次发送18个字节 (每次最多20个)
//发送之前
while (byteLen > 0) {
i++;
if (byteLen > 18) {
tempBuffer = order.slice(pos, pos + 18);
pos += 18;
byteLen -= 18;
console.log("第", i, "次发送:", tempBuffer);
that.writeBLECharacteristicValue(tempBuffer);
} else {
tempBuffer = order.slice(pos, pos + byteLen);
pos += byteLen;
byteLen -= byteLen;
console.log("第", i, "次发送:", tempBuffer);
that.writeBLECharacteristicValue(tempBuffer);
}
}
console.log("发送结束");