Unknown 状态字段是什么意思——Charge state 和 Health state 的边界
为什么会有 Unknown
Android BatteryManager API 对部分字段返回 Integer 编码:
- 充电状态:0 = Unknown, 1 = Charging, 2 = Discharging, 3 = Not Charging, 4 = Full
- 健康状态:1 = Unknown, 2 = Good, 3 = Overheat, 4 = Dead, 5 = Over Voltage, 6 = Unspecified Failure, 7 = Cold
Castro 把 0 或 1 这类"系统自己也不知道"的状态映射为中文 Unknown,而不是留空白。
什么时候会显示 Unknown
- 充电状态 — 非充电状态下某些厂商 ROM 不上报 Discharging 状态,直接返回 0
- 健康状态 — 大多数设备健康状态只返回 Good 或 Unknown,其他枚举值几乎从不出现
- 技术类型之外的扩展字段 — 实时功率、循环次数等高级读数如果驱动不支持,也会显示 Unknown
Unknown 不是错误
这是 Castro 的设计选择——用明确的 Unknown 告诉你"这个值系统没有给我",而不是静默留空白让你猜是不是应用卡住了。所以看到 Unknown 先不要慌,确认一下这个字段在你当前的设备和系统版本上是否理论上应该有值。
怎么验证是否真的读不到
- 换一台不同品牌的设备对比同一字段
- 如果你的设备理论上应该支持但显示 Unknown,检查是否是最新版本的 Castro,或者尝试手动更新系统
- 某些小米/Redmi 机型的循环次数字段在 MIUI 15 上有特定限制,即使 Android 14 也可能读不到