2***@qq.com
2***@qq.com
  • 发布:2026-05-03 17:24
  • 更新:2026-05-03 17:24
  • 阅读:18

【报Bug】onBluetoothDeviceFound 回调函数没有执行, getConnectedBluetoothDevices then catch 都不会进去

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 11

HBuilderX类型: 正式

HBuilderX版本号: 5.08

手机系统: Android

手机系统版本号: Android 12

手机厂商: 华为

手机机型: MatePad pro,荣耀手机

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

1

预期结果:

1

实际结果:

1

bug描述:

getConnectedBluetoothDevices then 和 catch 都不会进入,onBluetoothDeviceFound 回调函数不会进入,报错信息也不知道

2026-05-03 17:24 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

该 bug 反馈的质量较差,缺乏有效复现信息,无法进行有效定位。

评审意见

1. 反馈完整性评估

严重缺失项:

  • 代码示例:未提供任何代码片段,无法判断蓝牙初始化流程是否正确(如是否先调用 openBluetoothAdapter
  • 复现步骤:仅填写 "1",无实际操作流程
  • 预期/实际结果:仅填写 "1",无具体描述
  • 错误日志:未提供任何控制台报错或系统日志

基本信息:

  • HBuilderX 版本标注为 5.08 正式版,但当前最新正式版为 5.07(2026-04-16 更新),5.08 为 alpha 待发版,版本信息存疑
  • 设备信息(华为 MatePad Pro / 荣耀手机,Android 12)已记录

2. 问题分析

根据知识库中同类问题历史记录,此类现象通常由以下原因导致:

可能原因 A:蓝牙适配器未初始化
根据 历史问答记录,必须先调用 uni.openBluetoothAdapter 成功后,才能进行扫描或获取已连接设备。

可能原因 B:权限问题
Android 6.0+ 搜索蓝牙需要定位权限(部分机型需同时开启 GPS),如 问答 183169 中用户反馈"开启地理位置后正常"。

可能原因 C:API 调用时序或参数问题

  • getConnectedBluetoothDevices 在 Android 平台上需将 services 参数设为空数组才能获取已连接设备(iOS 则需指定 UUID)
  • 二次开启扫描可能出现不回调情况(参考 问答 177344

可能原因 D:系统或版本兼容性
部分华为/荣耀机型在特定系统版本存在蓝牙扫描兼容性问题(参考 问答 166560)。

3. 需要补充的信息

请补充以下内容以便定位:

  1. 最小复现代码

    • openBluetoothAdapter 的调用逻辑
    • startBluetoothDevicesDiscoveryonBluetoothDeviceFound 的完整代码
    • getConnectedBluetoothDevices 的调用参数
  2. 复现步骤

    • 是否已开启手机蓝牙?
    • 是否已授权定位权限(Android 需要)?
    • 是首次启动就失败,还是二次扫描时失败?
  3. 日志信息

    • HBuilderX 控制台输出
    • 真机调试时的 Logcat 日志
  4. 验证测试

    • 重启手机后是否恢复?
    • 系统自带蓝牙列表能否搜索到设备?

补充说明:如果使用的是自定义基座,请确认是否为最新版本;如果是云打包,请确认 manifest.json 中已勾选蓝牙模块权限。

内容为 AI 生成,仅供参考

要回复问题请先登录注册