BatteryManagerを使ったバッテリー情報の取得

どのくらいバッテリーが減っているのかどうかやバッテリーが充電されているかどうかはBatteryManagerを使うことで簡単に知ることができます。

例えばもし充電残量と充電できる最大量を知りたい場合は次のようなコードを書きます。

Intent batteryInfo = registerReceiver(
        null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
int level = batteryInfo.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int max = batteryInfo.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
Log.d("MainActivity : ", "充電量 = " + level + "   充電最大量" + max);

バッテリー残量が変化したときに呼ばれるACTION_BATTERY_CHANGEDのインテントを明示的に発行してそこからいろいろな情報を取得できます。

もしバッテリーの状態も知りたければ次のようなコードで取得可能です。

Intent batteryInfo = registerReceiver(
        null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
int status = batteryInfo.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
int health = intent.getIntExtra(BatteryManager.EXTRA_HEALTH, -1);
int plugged = batteryInfo.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);

バッテリーから取得できる状態には次の3種類があります。

この他にインテントに渡せるオプション定数についてはBatteryManagerのレファレンスを参照してください。

関連項目
プライバシーポリシー