uni.openBluetoothAdapter失败常见原因:模拟器不支持;iOS需配置manifest权限及NSBluetoothAlwaysUsageDescription;Android 12+需动态申请bluetoothScan/connect权限并处理定位权限;必须等待openAdapter成功后再调startDiscovery,且onBluetoothDeviceFound须提前注册; deviceId须严格使用回调返回值,格式校验防大小写错误;连接后需监听onBLEConnectionStateChange确认稳定再查服务与特征值。uni-app App端调用uni.openBluetoothAdapter失败的常见原因App端蓝牙功能在真机上才能运行,模拟器里调用uni.openBluetoothAdapter必失败,且不会报错,只会静默卡住或回调不触发。iOS 和 Android 行为还不一样:iOS 需提前在 manifest.json 里勾选「蓝牙」权限并填写 NSBluetoothAlwaysUsageDescription;Android 则必须动态申请 android.permission.BLUETOOTH_SCAN(Android 12+)和 android.permission.BLUETOOTH_CONNECT(Android 12+),老版本还需 android.permission.ACCESS_FINE_LOCATION------因为系统把蓝牙扫描归类为位置行为。实操建议:检查 manifest.json → app-plus → permissions 是否已完整配置蓝牙相关权限项Android 12+ 必须调用 uni.authorize({scope: 'scope.bluetoothScan'}) 和 uni.authorize({scope: 'scope.bluetoothConnect'}),不能只授权一次iOS 真机首次运行时,uni.openBluetoothAdapter 成功后才会弹出系统权限框,不是之前弹调用前先 uni.getSystemInfoSync().platform === 'ios' 分支处理,避免安卓逻辑误走 iOS 路径搜索设备时uni.startBluetoothDevicesDiscovery没返回结果最常被忽略的是:没等 uni.openBluetoothAdapter 完全 success 就直接 start discovery,或者 discovery 启动后没监听 uni.onBluetoothDeviceFound ------ 这个监听必须在 start 前注册,且仅对本次 discovery 有效,重启就得重绑。实操建议:确保 uni.openBluetoothAdapter 的 success 回调里再调 uni.startBluetoothDevicesDiscoveryuni.onBluetoothDeviceFound 必须在 start 前注册,且不要用箭头函数(this 绑定问题会导致监听失效)Android 下若仍无设备,尝试传参 {services: \[\], allowDuplicatesKey: true},某些设备广播时不带 service UUID,空 services 才能扫到iOS 对非标准广播包过滤更严,如果设备是自定义 BLE 协议,务必确认它广播了 0x1800(Generic Access)等基础 service连接设备后uni.createBLEConnection报错errCode: 10005errCode: 10005 是「连接超时」,不是设备不存在。根本原因是:调用 uni.createBLEConnection 时传入的 deviceId 不是 uni.onBluetoothDeviceFound 返回的那个,而是从列表里随便取的、或缓存旧值、或大小写混用(iOS 设备 ID 全大写,Android 可能小写)。 Shakespeare 一款人工智能文案软件,能够创建几乎任何类型的文案。
相关推荐
兵慌码乱1 小时前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析金銀銅鐵2 小时前
[Python] 体验用欧几里得算法计算最大公约数的过程FreakStudio6 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发用户0332126663677 小时前
使用 Python 从零创建 Word 文档Csvn12 小时前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定曲幽13 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了用户5569188175315 小时前
#从脚本到独立程序:Python + Playwright 批量抓取的完整踩坑记录倔强的石头_16 小时前
KingbaseES 新版MySQL 兼容版体验:旧版迁移 + 功能实测兵慌码乱1 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析luckdewei1 天前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化