1

我对电池管理器参数感到困惑。有人可以解释以下几点:

BATTERY_PROPERTY_CHARGE_COUNTER -

电池容量,单位为微安时,为整数。

问题 - 是剩余电池容量还是总电池容量。如果它的总数,为什么它会改变如果它的剩余(当我给我的手机充电 100% 时)值类似于 3366079 但我手机电池的总容量是 3300 mAh(从电源配置文件中读取)这怎么可能大于 3300 mAh ?

Integer chargeCounter = mBatteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER);
Integer capacity = mBatteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);
Long energyCounter = mBatteryManager.getLongProperty(BatteryManager.BATTERY_PROPERTY_ENERGY_COUNTER);

long batteryCapacity = (chargeCounter/容量) *100;

日志是愚蠢的:

充电计数器:3366079容量100电池容量为:3366000

BATTERY_PROPERTY_ENERGY_COUNTER

电池剩余能量,以纳瓦时为单位,长整数。

此参数返回 0(在 2 台设备上测试) 问题 - 该值是否应为关闭 3300 毫安时的剩余电池容量值?否则这是什么意思?

使用的设备 - LG G6 和 Pixel 1

谢谢

4

1 回答 1

1

这些问题背后有很多物理问题,对于第一个问题,这怎么会大于 3300 mAh?当制造商制造新电池时,他们会使用一个范围来制造它们,如果您的电池说它是 3300mAh,则会有一个误差范围为 +/- 一些误差百分比。此外,为了测量电池,他们使用的传感器也容易出现一定百分比的误差。所有这些措施都从模拟转换为数字,这也会导致另一个错误。我认为这个链接可能会有所帮助:https ://source.android.com/devices/tech/power/device

对于您的第二个问题,请查看这篇文章: Android BATTERY_PROPERTY_ENERGY_COUNTER 返回固定值?

于 2018-04-11T15:41:41.507 回答