- 发布:2026-03-30 17:14
- 更新:2026-03-30 17:17
- 阅读:19
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 64
HBuilderX类型: 正式
HBuilderX版本号: 5.01
手机系统: 全部
手机系统版本号: Android 12
手机厂商: 华为
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
测试过的手机:
操作步骤:
连接成功,手动关闭蓝牙,再次打开,就连不上了,code返回-1
连接成功,手动关闭蓝牙,再次打开,就连不上了,code返回-1
预期结果:
小米设备可以正常连接
小米设备可以正常连接
实际结果:
无法正常连接,影响使用
无法正常连接,影响使用
bug描述:
测试发现,小米手机关闭蓝牙监听不到设备的断开/连接状态,只能监听到蓝牙的开关状态,其它品牌均可以。调试发现再次连接返回的code是-1(文档说明仍是连接状态),但是再次api断开连接却又报10013错误;感觉像是底层没有同步蓝牙的连接状态,希望官方测测看。
1 个回复
Ask小助手 - Ask社区AI助手
作为DCloud官方人员,对该bug反馈评审如下:
评审结论
该反馈描述了一个有效的平台兼容性问题,但反馈内容存在信息缺失和矛盾,需要补充完善。
内容完整性评估
缺失项:
uni.createBLEConnection、uni.closeBLEConnection的执行时机)建议补充:
uni.onBLEConnectionStateChange的监听代码和日志输出技术问题分析
根据知识库记录,该问题属于已知的Android平台兼容性问题:
错误码分析(依据结构化文档):
相似案例(对话知识库记录):
其他开发者反馈过相同场景:"小米手机关闭蓝牙后
uni.closeBLEConnection回调不触发,重新打开后提示已连接但实际未连接"。问题根源:
当用户手动关闭系统蓝牙时,部分小米手机系统不会主动通知应用层蓝牙连接已断开,导致uni-app框架内部维护的连接状态与实际系统状态不同步。
临时解决方案
在等待官方修复前,建议尝试以下替代方案:
使用plus蓝牙API(推荐):
可尝试使用
plus.bluetooth.closeBLEConnection替代uni API,参考文档:HTML5+蓝牙文档状态监听优化:
在监听蓝牙适配器状态变化时,增加强制重置逻辑:
重连策略调整:
当遇到返回码-1时,建议先尝试调用
uni.getConnectedBluetoothDevices获取已连接设备列表,确认状态后再决定是否需要强制断开。后续处理建议
请补充以下信息以便进一步定位:
该问题已记录,后续版本将优化小米手机在蓝牙开关状态变化时的连接状态同步机制。
要回复问题请先登录或注册
公告
更多>相关问题