0%

Android获取电池信息(电量、充电状态等)

安卓开发

先获取电池管理器

Java
1
BatteryManager bm = (BatteryManager) getSystemService(BATTERY_SERVICE);

以下为 安卓5.0(SDK21) 及以上的Method

剩余容量(mAh) int

Java
1
bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER);

平均电流(mA) int

Java
1
bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_AVERAGE);

瞬时电流(mA) int

Java
1
bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_NOW);

电量(百分数) int

Java
1
bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);

以下为 安卓8.0(SDK26) 及以上的Method

充电状态 int

Java
1
bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_STATUS);
  • BatteryManager.BATTERY_STATUS_UNKNOWN
    状态未知
  • BatteryManager.BATTERY_STATUS_CHARGING
    正在充电
  • BatteryManager.BATTERY_STATUS_DISCHARGING
    正在放电(耗电)
  • BatteryManager.BATTERY_STATUS_NOT_CHARGING
    没有充电
  • BatteryManager.BATTERY_STATUS_FULL
    已充满(在充电状态)

ADB

adb shell
1
dumpsys battery

返回示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Current Battery Service state:
AC powered: false - 交流电源未连接
USB powered: true - USB电源已连接
Wireless powered: false - 无线充电未激活
Max charging current: 500000 - 最大充电电流为500000微安
Max charging voltage: 5000000 - 最大充电电压为5000000微伏
Charge counter: 1400000 - 电池充电计数器,表示电池自上次充满电以来的总充电量
status: 2 - 电池状态为充电中
health: 2 - 电池健康状况良好
present: true - 电池存在
level: 28 - 电池电量百分数为28
scale: 100 - 电量百分比的最大值为100
voltage: 3872 - 当前电池电压为3872微伏
temperature: 348 - 电池温度为348/10度(一般温度值需要除以10)
technology: Li-poly - 电池类型为锂聚合物电池

参考