在项目中,底层硬件的数据交互是有设计成可以通过蓝牙进行传输的。低功耗蓝牙传输和app的交互,有太多问题和坑,这篇文章就从头到尾的把所有碰到的问题以及解决的流程做一个讲解。
文章环境
- 编辑器-HbuilderX
- 前端框架-uni-app
- UI框架-uview-ui
文章目录
1、设备的连接与鉴权
公司的蓝牙设备和app连接是有一个鉴权的过程的,保证只有我司的app可以与我司的设备进行数据对接。开始设计的连接方式有两种分别是蓝牙连接和扫码连接,两种连接的方式都一样都是通过
第一步、打开蓝牙 openBluetoothAdapter
uni.openBluetoothAdapter({
success: e => {
//成功打开蓝牙初始化
this.startBluetoothDevicesDiscovery_ble();
},
fail: e => {
//失败原因:因为设备蓝牙功能未打开
this.$refs.uToast.show({
title: "设备蓝牙功能未打开",
type: 'error'
})
}
});
第二步、发现蓝牙设备 startBluetoothDevicesDiscovery
uni.startBluetoothDevicesDiscovery({
success: e => {
uni.onBluetoothDeviceFound(res => {
// 将搜索到的蓝牙设备deviceId 发送给全局的蓝牙列表 蓝牙连接的子页面显示
if (that.bluelist.indexOf(res.devices[0].deviceId) == -