恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

微信小程序BLE开发踩坑记02|系统蓝牙可见却搜不到?

  • 首页
  • 资讯中心
  • /
  • 微信小程序BLE开发踩坑记02|系统蓝牙可见却搜不到?

相关资讯

大数据分析与应用——“兼容 Oracle“这四个字,快成国产数据库最大的文字游戏了 2026/10/21 20:59:27
2026年中医AI辅助诊疗系统值得关注的品牌对比 2026/10/21 20:59:27
HarmonyOS 7+ArkTS:精准碰一碰回执幂等判定与确认门禁【鸿蒙心迹】 2026/10/21 20:59:27

最新资讯

基于Packet Tracer的计算机网络实验一:IP配置、ARP解析与排错全攻略
TS模糊神经网络原理与代码实现:从规则到混合学习
基于粘液霉菌算法SMA的SVM/SVR/LSSVM超参数优化实战
技能管理实战:从识别、获取到沉淀的系统方法论
知识工作插件化:用自动化工具链终结低效信息处理
SpringBoot+Vue高校行政管理系统:从权限设计到审批流落地

今日推荐

SAP 屏幕上的金额未必存在数据库表里,从 WB2R_SV 的 Net Amount 看懂运行时计算
具身智能中‘指哪打哪’的视觉语言动作联合建模
AI时代人工翻译技术博客的价值与实践指南

本周热门

基于GMM的语音识别系统原理与MATLAB实现详解
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

微信小程序BLE开发踩坑记02|系统蓝牙可见却搜不到?

发布时间:2026/10/21 21:04:27
微信小程序BLE开发踩坑记02|系统蓝牙可见却搜不到? 背景上一篇刚把安卓搜不到设备那事摆平我还挺得意以为扫描这块算是摸清了。结果一接血压计又懵了同一台手机、同一套扫描代码血氧仪一搜就出来血压计扫半天页面干干净净。更邪门的是这台血压计在手机自带的蓝牙设置里明明看得到点配对也没问题。先说结论不是所有 BLE 设备都会在广播里带名字。我那台血压计的广播包里压根没有设备名字段而我的扫描层写了一句名字为空就丢弃——于是它被我自己筛掉了。一句话记住扫描层的活儿是上报设备认不认得出目标是识别层的事。现象血氧仪扫描页 1~2 秒就列出来了。血压计页面毫无反应等再久也不出来。手机系统蓝牙里这台血压计可见、可配对。两条信息又打架了。不过这回我没慌——上次刚学会对照实验直接套用。排查先看日志。把设备发现回调里的原始数据整条打出来name、localName、advertisData全打。可一开始什么都印不出来。我反应过来是我那句丢弃执行在打印之前设备根本没机会出现在日志里。于是我把丢弃那行先注释掉、只留打印才第一次看到这台设备的广播原貌——name: 、localName: 但advertisData里带着一串非空数据。再用 BLE 调试 App比如 nRF Connect 这类连上它看原始广播确认它广播的只有 Flags、服务 UUID、制造商数据三块没有设备名字段。回头翻协议文档广播包格式那节也对上了——它就是设计成这样。根因BLE 扫描时周围会扫到一堆没名字的杂散设备邻居的耳机、手环、电视。所以很多示例代码里都有一句没名字的丢掉我的扫描层也照抄了// 【踩坑写法】扫描层里名字为空就丢弃if(!device.name!device.localName)return;// 血压计天生无名 → 直接被筛掉所有 BLE 设备都有广播名这个前提本身就不成立。血氧仪的广播里带名字所以一直正常血压计天生无名于是全灭。代码一个字没改变量是设备。解决扫描层只上报识别交给上层扫描层不再做任何认设备的判断来者一律上报是不是目标设备交给设备识别模块综合判断型号码 名字关键词 服务 UUID 一起看// 【修复】扫描层不做识别无名设备也一律上报wx.onBluetoothDeviceFound(function(res){res.devices.forEach(function(device){// 不再按 name 是否为空丢弃直接交给上层识别reportToDeviceManager(device);});});顺带在扫描层开了一条广播 hex 诊断日志无名设备从此有据可查// 把广播原始数据打成 hex形如 AA 4C 41 ...无名设备也能排查if(device.advertisData){console.log([扫描] 无名设备广播:,hexDump(device.advertisData),device.deviceId);}hexDump就是把ArrayBuffer逐字节转成大写十六进制字符串调 BLE 这活儿离不了它。改完把手机拿来再跑一遍血压计和血氧仪都稳稳地出来了。预防 / 复盘要点对接新硬件前先抓一遍它的原始广播包拿工具看一眼别用别的设备都这样去假设它。扫描层负责上报识别层负责过滤。过滤逻辑要放在掌握完整判据名字 / 型号码 / 服务 UUID的那一层扫描层越单纯越好。出现别的设备都正常唯独这台不正常先怀疑这台设备的广播格式特殊而不是扫描代码有 bug。常见问题Q1蓝牙设备在系统设置里能看到小程序就是搜不到一般是什么原因最常见两类一是本文这种设备广播里没有名字字段被无名即丢弃的过滤逻辑筛掉了二是安卓定位权限没给全扫描根本起不来。区分方法很简单——把扫描回调的原始日志打开看有没有这台设备的记录。有记录 被自己筛了没记录 扫描压根没起来。Q2怎么知道我的设备广播里到底有没有名字用 BLE 调试 App 看一眼原始广播最快没有的话就在小程序里把advertisData打成 hex 打出来看。别猜看一眼就有答案。Q3无名设备该怎么确认它是我要连的那台看广播里的其他东西——制造商数据、服务 UUID、广播内容的特征都能当判据。我后面会专门写一篇名字没有、型号也不对时怎么认出设备。最后扫描层和识别层这层分工我后来整理成了那套开源 BLE SDK 的一部分——设备发现一律上报认不认得出来交给识别模块接入方不用自己写过滤逻辑Giteehttps://gitee.com/wanrendi75/jingjin-ble-sdk这个连载我才写到第二篇踩的坑一个比一个刁钻后面接着记。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号