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

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);


长电池容量=(chargeCounter /容量)* 100;

日志是foolow:


  收费柜台:3366079
  容量100
  电池容量:3366000


BATTERY_PROPERTY_ENERGY_COUNTER


  电池剩余能量(以纳瓦小时为单位),为一个长整数。


此参数返回0(在2个设备上测试)
问题-此值应为3300 mAH时的剩余电池容量值吗?否则这意味着什么?

使用的设备-LG G6和Pixel 1

谢谢

最佳答案

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

对于第二个问题,请查看此帖子:
Android BATTERY_PROPERTY_ENERGY_COUNTER returning fixed value?

09-10 07:06