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

相关推荐
wuminyu5 小时前
Kafka中sendfile与mmap实现机制解析
java·linux·c语言·jvm·c++
九皇叔叔7 小时前
【第二章】Redis基础入门:Redis是什么、为什么快以及核心特性详解
数据库·redis·缓存
云和恩墨7 小时前
删库不跑路,回滚极速触达——zData S“旁路日志”持续保护原理深剖
数据库
MetaLite7 小时前
SpringBoot接口分层规范-外网网关内部服务与参数边界
java·数据库·spring boot
颜颜yan_8 小时前
ESP-IDF 鸿蒙 PC 适配全记录:打通 Python、构建工具链与 ESP32-P4 固件生成
python·华为·harmonyos
言乐68 小时前
Python加速器4跨境网络加速器
运维·服务器·开发语言·网络·python
weixin_440730508 小时前
线程02-并发串行-互斥锁-Semaphore-Event
python·thread
Wang's Blog9 小时前
Java框架快速入门: Spring Security+OAuth2之元注解简化权限表达式
java·数据库·spring
张小凡vip9 小时前
python--爬虫--经验积累的遇到的坑
开发语言·爬虫·python
毕业设计7039 小时前
(免费领源码) 基于微信小程序的预制菜商城的设计与实现25172-java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
vue.js·python·mysql·微信小程序·pycharm·微信开发者工具·推荐算法