如何测试电池充电速度?
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快充速度是多少瓦?