前言:该项目流程是通过扫设备上的二维码(获取设备deviceId和蓝牙锁设备信息)建立蓝牙连接后再开锁(与设备通信)。注意:①与蓝牙的通信遵循第三方通信协议(数据写入和接受这块)②发送/接受的蓝牙数据需要进行加解密处理(aes-128加密和解密)③数据类型之间的转化
参考文章:uniapp微信小程序蓝牙连接与设备数据对接_uniapp小程序蓝牙配网-CSDN博客
一:蓝牙通信板块(首先通过扫码获取到信息,然后调用蓝牙相关api进行蓝牙的通信)
1:初始化蓝牙并连接
/**
* 获取手机蓝牙是否打开(初始化蓝牙)
*/
getBluetoothState() {
let that = this
// 主机模式
return new Promise((resolve, reject) => {
uni.openBluetoothAdapter({
mode: 'central',
success: (r) => {
console.log("蓝牙初始化成功");
// 获取蓝牙的匹配状态
uni.getBluetoothAdapterState({
success: function(row) {
console.log('蓝牙状态:', row.available);
if (row.available) {
that.bluetoothOpen = true;
resolve();
} else {
// 请开启蓝牙
that.bluetoothOpen = false;
reject();
}
},
fail: function(err) {
// 请开启蓝牙
that.bluetoothOpen = false;
reject();
}
})
},
fail: (err) => {
// 请开启蓝牙
if (err.errCode === 10001) {
uni.showModal({
title: '提示',
content: '请先打开蓝牙',
showCancel: false,
success: function(res) {}
});
// 监听蓝牙适配器状态变化事件