无需登录 数据私有 本地保存

Web Bluetooth 电池服务演示 - 读取蓝牙设备电量

3
0
0
0

蓝牙电池电量读取

通过 Web Bluetooth API 连接设备,实时读取蓝牙设备电池电量

Chrome Edge Opera Safari 不支持 Firefox 不支持
等待连接
--%

请确保设备支持 Battery Service (0x180F),常见于蓝牙鼠标、键盘、耳机、游戏手柄等。

常见问题与知识点

Web Bluetooth API 是一项允许网页通过蓝牙与附近设备通信的浏览器标准。它使网页应用无需安装原生程序即可连接蓝牙设备。

支持情况:
Chrome(桌面版 + Android)— 完整支持
Microsoft Edge — 基于Chromium,完整支持
Opera — 支持
Safari(macOS/iOS)— 不支持,iOS用户可使用 Bluefy 等第三方浏览器
Firefox — 目前不支持
🔒 必须使用 HTTPSlocalhost 访问。
Battery Service(UUID: 0x180F)是蓝牙SIG定义的标准GATT服务,用于报告设备电池状态。

主要特征 (Characteristics):
Battery Level (0x2A19):返回0-100的百分比,表示当前电量。支持Notification实时推送。
Battery Power State (0x2A1A):报告充电状态(未知/未充电/充电中/充电完成)。

许多蓝牙外设(鼠标、键盘、耳机等)都实现了此标准服务。设备通过GATT协议暴露这些数据,本工具通过Web Bluetooth API读取。
可能的原因及解决方案:

1️⃣ 设备未处于可发现模式 — 确保设备处于配对/广播模式
2️⃣ 设备不在范围内 — 蓝牙有效距离通常为10米以内
3️⃣ 设备不支持电池服务 — 部分设备未实现标准 Battery Service。尝试使用"扫描全部设备"按钮
4️⃣ 设备已被其他应用连接 — 蓝牙设备通常只能同时连接一个主机,请断开其他连接
5️⃣ 浏览器权限 — 确保浏览器有蓝牙权限,Chrome需在系统设置中允许蓝牙访问
6️⃣ 系统蓝牙未开启 — 检查电脑/手机的蓝牙是否已打开
本工具优先使用蓝牙GATT的Notification机制:如果设备支持Battery Level特征的通知,当电量变化时设备会主动推送更新,实现实时监控

如果设备不支持通知,工具会自动回退到定时轮询模式,每10秒读取一次电量。

你也可以随时点击"刷新电量"按钮手动获取最新数据。设备断开后所有更新自动停止。
完全安全。本工具的所有操作均在您的浏览器本地执行:

🔒 蓝牙连接仅在您的设备与浏览器之间建立,不会经过任何远程服务器
🔒 电量数据仅在页面内存中处理,不会被上传或存储
🔒 Web Bluetooth API 要求用户主动点击触发,网站无法自动扫描设备
🔒 浏览器会显示设备选择对话框,用户完全掌控连接哪个设备
🔒 关闭页面或标签后,蓝牙连接自动断开
GATT(通用属性协议)是蓝牙低功耗(BLE)设备间数据通信的基础:

📚 Profile(配置文件) → 定义设备功能的顶层规范
📦 Service(服务) → 一组相关功能的集合,每个服务有唯一UUID
📊 Characteristic(特征) → 服务中的具体数据项,可读/可写/可通知
📝 Descriptor(描述符) → 特征的元数据,如单位、范围等

例如:蓝牙耳机可能有 Battery Service(0x180F) 提供电量,HID Service(0x1812) 提供输入功能。每个特征有不同的操作权限:Read(读取)、Write(写入)、Notify(通知)、Indicate(指示)等。
🖱️ 蓝牙鼠标 — Logitech、Microsoft、Razer等大多数蓝牙鼠标
⌨️ 蓝牙键盘 — 机械键盘、薄膜键盘的蓝牙型号
🎧 蓝牙耳机/音箱 — AirPods(通过特定方式)、Sony、Bose等
🎮 游戏手柄 — PS4/PS5手柄、Xbox蓝牙手柄、Switch Pro手柄
智能手表 — 部分型号支持Battery Service
📱 其他BLE设备 — 智能标签、传感器等

💡 提示:如果设备在蓝牙广播中声明了Battery Service UUID,使用"扫描电池设备"即可发现;否则请使用"扫描全部设备"。