uniapp onbleconnectionstatechange 如何使用或监听状态变化

在uniapp中如何使用onbleconnectionstatechange监听蓝牙连接状态的变化?我尝试在uni.onBLEConnectionStateChange中写回调函数,但不知道具体参数和事件触发条件是什么。能否提供一个完整的代码示例,说明如何正确监听蓝牙设备的连接和断开事件?

2 回复

在uniapp中,使用uni.onBLEConnectionStateChange监听蓝牙连接状态变化:

uni.onBLEConnectionStateChange(function(res) {
  console.log(`设备 ${res.deviceId} 连接状态: ${res.connected}`)
  // res.connected 为 true/false
})

记得先调用uni.createBLEConnection连接设备,并在页面销毁时用uni.offBLEConnectionStateChange取消监听。


在 UniApp 中,onBLEConnectionStateChange 是用于监听低功耗蓝牙(BLE)设备连接状态变化的事件。当蓝牙设备的连接状态改变时(例如连接成功、断开连接),会触发此事件回调。

使用步骤:

  1. 初始化蓝牙模块:使用 uni.openBluetoothAdapter 初始化蓝牙适配器。
  2. 监听连接状态变化:通过 uni.onBLEConnectionStateChange 注册监听事件。
  3. 处理状态变化:在回调函数中获取连接状态并执行相应操作。

示例代码:

// 初始化蓝牙适配器
uni.openBluetoothAdapter({
  success: (res) => {
    console.log('蓝牙适配器初始化成功');
    this.startListenBLEConnectionState(); // 开始监听连接状态
  },
  fail: (err) => {
    console.error('蓝牙适配器初始化失败:', err);
  }
});

// 监听蓝牙连接状态变化
startListenBLEConnectionState() {
  uni.onBLEConnectionStateChange((res) => {
    console.log(`设备 ${res.deviceId} 连接状态变化:`, res.connected);
    if (res.connected) {
      console.log('蓝牙设备已连接');
      // 执行连接成功后的操作,例如发现服务
    } else {
      console.log('蓝牙设备已断开');
      // 执行断开连接后的清理操作
    }
  });
}

注意事项:

  • 先初始化蓝牙适配器:确保在调用 onBLEConnectionStateChange 前已成功初始化蓝牙适配器。
  • 设备连接:监听前需通过 uni.createBLEConnection 尝试连接设备,否则不会触发状态变化。
  • 及时取消监听:在页面卸载或不需要时,使用 uni.offBLEConnectionStateChange 取消监听,避免资源浪费。

参数说明:

回调函数参数 res 包含:

  • deviceId:蓝牙设备 ID。
  • connected:连接状态(布尔值,true 表示已连接,false 表示断开)。

通过以上方法,你可以有效监听并处理 UniApp 中蓝牙设备的连接状态变化。

回到顶部