<< Android-Note
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種類があります。
- BATTERY_HEALTH
バッテリーの物理的な状態を表していてBATERRY_HEALTH_GOODが正常に動いていることを表しています。各定数の意味は次の表のとおりです。
定数名 状態 BATTERY_HEALTH_COLD 低温状態 BATTERY_HEALTH_DEAD 壊れている BATTERY_HEALTH_GOOD 良好 BATTERY_HEALTH_OVERHEAT 温度異常 BATTERY_HEALTH_OVER_VOLTAGE 電圧異常 BATTERY_HEALTH_UNKNOWN 不明 BATTERY_HEALTH_UNSPECIFIED_FAILURE 不明 - BATTERY_STATUE
バッテリーの充電状況を表していてフル充電の時にBATTERY_STATUS_FULLになります。各定数の意味は次の通りです。
定数名 状態 BATTERY_STATUS_CHARGING 充電中 BATTERY_STATUS_DISCHARGING 放電中 BATTERY_STATUS_FULL 充電完了 BATTERY_STATUS_NOT_CHARGING 充電されてない BATTERY_STATUS_UNKNOWN 不明 - BATTERY_PLUGGED
バッテリーがどの機器から充電されているか表しています。各値は次の表のような意味を持ちます。
定数名 機器 BATTERY_PLUGGED_AC ACアダプタ BATTERY_PLUGGED_USB USB BATTERY_PLUGGED_WIRELESS ワイヤレス充電器
この他にインテントに渡せるオプション定数についてはBatteryManagerのレファレンスを参照してください。
© Kaz