web-dev-qa-db-ja.com

バッテリーの充電速度をテストする方法は?

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

thisthis および this も参照しますが、充電速度を確認する方法が見つかりません。

充電速度を表示するアプリ( Ampere )があります。 enter image description hereenter image description here どうすればこれを達成できますか?

前もって感謝します。

11
Kishan Vaghela

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

私は彼らが充電速度を検出する方法を考えていません:しかしあなたはそれを問題なく行うことができます:1)あなたは充電レベル(パーセンテージまたは数)を記録することができます

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

2)そして、しばらくしてから、同じコードを使用して、現在の充電レベルを再度取得できます。 3)次に差を計算すると、充電速度を知ることができます。

これは、それをどのように実装できるかという考えにすぎません。

これがお役に立てば幸いです

2