如何测试电池充电速度?

Posted

技术标签:

【中文标题】如何测试电池充电速度?【英文标题】:How to test battery charging speed? 【发布时间】:2016-08-12 07:44:40 【问题描述】:

如何在安卓设备中检测电池充电速度? 我可以使用以下代码检测电池状态。但不是充电速度。

IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
BatteryChangeReceiver receiver = new BatteryChangeReceiver(subscriber);
registerReceiver(receiver, filter);


public class BatteryChangeReceiver extends BroadcastReceiver 

    @Override public void onReceive(Context context, Intent intent) 
              // here I get all battery status.
    
  

我也参考了this,this和this,但找不到检查充电速度的方法。

有一个显示充电速度的应用程序 (Ampere)。 我怎样才能做到这一点?

提前致谢。

【问题讨论】:

做一个时间和收费百分比的组合。 不,只要我连接到充电器就会显示。如果我连接到 USB 数据线,则显示慢速充电,如果是壁式充电器和快速充电。 我想你可以在设备的dmesg日志中找到。 我添加了另外两张截图。 【参考方案1】:

使用BatteryManager。它提供了属性BATTERY_PROPERTY_CURRENT_AVERAGE,它为您提供了以微安为单位的平均电池电流。不幸的是,收集此信息的时间段可能因设备而异。负值表示正在放电,正值表示手机正在充电。

或者,您可以使用BATTERY_PROPERTY_CURRENT_NOW(看起来Ampere 正在使用这种方法)。它返回瞬时电池电流。它可能不准确,因此多次调用此属性并计算平均值似乎是个好主意。

示例代码:

BatteryManager batteryManager = (BatteryManager) Context.getSystemService(Context.BATTERY_SERVICE);
int averageCurrent = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_AVERAGE);

【讨论】:

API 21 中添加的,能否提供低版本也可以的解决方案? 只有具有电池电量表 (source.android.com/devices/tech/power/device.html) 的手机才能报告 BATTERY_PROPERTY_CURRENT_AVERAGE。例如,Nexus 5 只能为您提供 BATTERY_PROPERTY_CAPACITY。【参考方案2】:

我认为他们无法检测充电速度: 但是你可以这样做有问题: 1)您可以通过

记录收费水平(百分比或数字)

int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0); batteryTxt.setText(String.valueOf(level) + "%");

2) 然后经过一些处理时间后,您可以使用相同的代码再次获得当前的收费水平。 3)然后计算差值,就可以知道充电速度了。

这只是你如何实现它的想法。

希望对你有帮助

【讨论】:

以上是关于如何测试电池充电速度?的主要内容,如果未能解决你的问题,请参考以下文章

解析:如何快速搭建快充电气性能测试框架?

直播预告如何快速搭建快充电气性能测试框架?

蓄电池充电蓄电池如何正确充电 蓄电池充电方法详解 - 转

真我Realme GT Neo5有无线充电吗? 真我Realme GT Neo5快充速度是多少瓦?

真我Realme GT Neo5有无线充电吗? 真我Realme GT Neo5快充速度是多少瓦?

macOS新增实用功能,优化充电模式,延长MacBook电池寿命