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

电池状态 API 演示 - 电量/充电/剩余时间

25
0
0
0

电池状态实时监控

使用 Battery Status API 实时获取设备电池信息

--%
检测中...
充电状态
--
充满电还需
--
预计可使用
--
电池电量低于 15%,请尽快连接充电器!
状态变化记录
等待电池数据...
浏览器不支持 Battery Status API

您的浏览器不支持电池状态API,请使用 ChromeEdgeOpera 等 Chromium 内核浏览器打开此工具。

Firefox 和 Safari 已限制此API的访问。桌面电脑通常没有物理电池,API会返回模拟数据。


常见问题与知识点

Battery Status API(电池状态接口)是 W3C 制定的网页标准API,允许网页应用获取用户设备的电池信息。通过 navigator.getBattery() 方法,可以获取电池电量、充电状态、充满电时间和放电剩余时间等数据。主要用途包括:在电量不足时自动保存数据、降低页面刷新频率以节省电量、提示用户充电等。它是构建省电友好型网页应用的重要工具。

目前,Chrome(桌面版和安卓版)Microsoft EdgeOperaSamsung Internet 等基于 Chromium 内核的浏览器完整支持此API。Firefox 曾支持该API,但出于隐私考虑在 Firefox 52 后移除了对它的支持。Safari(包括iOS) 从未支持此API。如果您需要在移动端测试,建议使用安卓设备上的 Chrome 浏览器。

该API提供四个核心属性:
① level(电量):0到1之间的浮点数,表示当前电量比例(如0.85表示85%电量);
② charging(充电状态):布尔值,true 表示正在充电,false 表示未充电;
③ chargingTime(充满电所需时间):单位秒,如果正在充电则返回预计充满时间,已充满返回0,未充电返回 Infinity
④ dischargingTime(放电剩余时间):单位秒,如果未充电则返回电池耗尽前的预计时间,充电中返回 Infinity

电池剩余时间(chargingTime 和 dischargingTime)由操作系统估算提供,仅供参考,实际时间可能因设备使用强度、后台应用、屏幕亮度等因素而变化。当系统无法提供可靠的估算时(如刚拔掉充电器、电量变化不稳定),API可能返回 Infinity 或非常大的值,此时本工具会显示"无法估算"。这是正常现象,等待几秒后系统通常会给出更准确的估算。

这是一个备受关注的话题。2015年曾有研究指出,电池状态信息可能被用作设备指纹追踪的辅助手段(因为电池充放电的微小波动具有某种唯一性)。正因如此,Firefox 在2016年移除了该API,Safari也从未实现。不过,在支持该API的浏览器中,电池信息仅提供粗略数据,不会暴露电池品牌、健康度、循环次数等敏感信息。总体来说,普通用户无需过度担心隐私问题。

台式电脑虽然没有物理电池,但操作系统通常会模拟一个"永远满电"的电池设备。因此,在桌面端使用此API时,通常会看到 电量100%、充电状态为"正在充电" 的结果。这是正常现象,并不意味着您的电脑有电池。笔记本电脑用户则会看到真实的电池数据。

获取电池对象后,可以为其添加事件监听器:
battery.addEventListener('levelchange', () => {...}) — 监听电量变化;
battery.addEventListener('chargingchange', () => {...}) — 监听充电状态变化;
battery.addEventListener('chargingtimechange', () => {...}) — 监听充满时间变化;
battery.addEventListener('dischargingtimechange', () => {...}) — 监听放电时间变化。
这些事件在对应属性发生变化时自动触发,无需轮询。本工具正是使用这些事件实现实时更新。

目前该API的前景存在不确定性。一方面,隐私问题导致部分浏览器放弃支持;另一方面,W3C仍在维护该规范,Chromium系浏览器也持续支持。未来可能会出现更安全、更受控的替代方案(如需要用户授权的电池信息访问)。对于开发者而言,建议将此API作为渐进增强手段——支持时提供更好的用户体验,不支持时也不影响核心功能。

本工具完全在浏览器端运行,不会收集或上传您的电池数据。 | 数据实时更新,页面关闭后自动停止监控。