uni-app uni.stopBluetoothDevicesDiscovery不能停止搜索蓝牙

uni-app uni.stopBluetoothDevicesDiscovery不能停止搜索蓝牙

2 回复

都25年啦!!还没解决这个问题嘛!我也遇到了 uni.onBluetoothDeviceFound 方法的回调 advertisData 全是空的。

更多关于uni-app uni.stopBluetoothDevicesDiscovery不能停止搜索蓝牙的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在uni-app中,uni.stopBluetoothDevicesDiscovery 无法停止蓝牙搜索通常由以下原因导致:

  1. 未正确调用开始搜索
    确保已通过 uni.startBluetoothDevicesDiscovery 成功启动搜索,且未在调用停止前关闭蓝牙适配器。

  2. 异步操作延迟
    蓝牙操作存在延迟,停止搜索可能需要短暂时间才能生效。建议在调用停止方法后,通过 onBluetoothDeviceFound 监听是否仍有设备返回。

  3. 作用域或生命周期问题
    检查是否在页面卸载或跳转时未正确调用停止方法,导致搜索进程未被释放。可在 onUnload 生命周期中强制停止。

  4. 系统或设备兼容性
    部分安卓机型或系统版本对蓝牙控制支持不一致,可尝试增加延迟重试或检查设备权限。

建议代码验证步骤:

// 开始搜索
uni.startBluetoothDevicesDiscovery({
  success: () => {
    // 确保此处成功后再执行停止
    setTimeout(() => {
      uni.stopBluetoothDevicesDiscovery({
        success: () => console.log('停止成功'),
        fail: (err) => console.log('停止失败', err)
      });
    }, 1000); // 适当延迟
  }
});
回到顶部