uni-app怎么实现App端蓝牙搜索与连接 uni-app低功耗蓝牙开发【代码】

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 一款人工智能文案软件,能够创建几乎任何类型的文案。

相关推荐
鹿角片ljp3 分钟前
Redis 深度复习:从入门到面试通关
数据库·redis·面试
小玮看世界9 分钟前
[Python]自动驾驶感知与决策练习题 (1-10)
开发语言·python·自动驾驶
Ming_studying17 分钟前
Python + SQLite FTS5 构建本地文档全文搜索器:增量索引、中文检索与高亮
jvm·数据库·python·sqlite
玉鸯30 分钟前
让 Agent 面向用户:AG-UI 协议构建 Agent 前端
前端·python·agent
云和恩墨39 分钟前
从静态备份到极速恢复:zData S重构多元数据库时代的“第二存储”底座
数据库·重构
小白学大数据43 分钟前
把 Modbus 轮询塞进 Trio 的异步循环:内存映射与定时采集实战
网络·python·搜索引擎
吴声子夜歌1 小时前
MongoDB 8.0——存储
数据库·mongodb
FriendshipT1 小时前
Ubuntu 20.04 下使用 Ollama 本地部署 AI 大模型
linux·人工智能·python·深度学习·ubuntu
天天爱吃肉82181 小时前
# 商用车多体动力学实战笔记|第7篇:制动系统与制动热衰退、ABS滞环控制
大数据·人工智能·笔记·python·嵌入式硬件·汽车
网教盟人才服务平台1 小时前
Redis Key集中过期引发的流量雪崩实战解析
数据库·redis·缓存