You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android API 21下获取BATTERY_PROPERTY_CHARGE_COUNTER及返回零问题排查

Android API 21 电池属性相关问题解答

1. 如何在API 21中获取BATTERY_PROPERTY_CHARGE_COUNTER?

在Android API 21中,可通过BatteryManager的getIntProperty()方法直接读取该属性,代码逻辑和你提供的一致:

val batteryManager = context.getSystemService(Context.BATTERY_SERVICE) as BatteryManager
val chargeCounter = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER)

注意:

  • 需在Manifest中声明android.permission.BATTERY_STATS权限(API 21中为普通权限,无需动态申请)
  • 该属性返回值单位为微安时(μAh),代表电池剩余电量,但仅当设备硬件/固件支持该统计时才会返回有效数值

2. API 21设备调用getIntProperty返回0的原因?

返回0通常由以下几种情况导致:

  • 硬件不支持:部分API 21老旧设备的电池管理模块未实现BATTERY_PROPERTY_CHARGE_COUNTER的统计逻辑,系统返回默认值0
  • 权限缺失:若应用未声明BATTERY_STATS权限,系统会限制读取,返回0
  • ROM限制:部分定制ROM对第三方应用读取该属性做了限制,导致返回默认值
  • 电池状态异常:当电池处于未识别、过放等异常状态时,系统也可能返回0

如果无法获取有效数值,可通过Intent.ACTION_BATTERY_CHANGED广播获取EXTRA_LEVEL和EXTRA_SCALE,计算剩余电量百分比作为替代,但无法获取具体的电量数值。

内容的提问来源于stack exchange,提问作者Arman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 16:32:32