11

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

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.
    }
  }

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

有一个显示充电速度 的应用程序(安培)。 我怎样才能做到这一点? 在此处输入图像描述 在此处输入图像描述

提前致谢。

4

2 回答 2

6

使用电池管理器。它提供属性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);
于 2016-08-16T06:36:40.977 回答
2

我不认为他们有任何检测充电速度的方法:但你可以这样做有问题:1)你可以通过以下方式记录充电水平(百分比或数字)

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

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

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

希望对你有帮助

于 2016-08-19T06:57:08.503 回答