ここまでの記事はこちら
今回は最後の仕上げです。
前回用意した BatteryReceiver の登録と解除を実装しましょう。
動画
準備中
解説
BatteryReceiver の登録
バッテリー状態に変化があったときにシステムからメッセージを受け取るためには BatteryReceiver を登録する必要があります。
MainActivity.java を開いて、2・3・11~15行目を追加します。
3行目
IntentFilter は受け取りたいインテントのタイプを指定することができます。
前回 BatteryReceiver.java で受け取ったアクションの判定をしました。
この時使ったアクション ACTION_BATTERY_CHANGED を IntentFilter でも指定しています。
11~15行目
onResume メソッドはユーザーがアプリを使えるようなった時に呼ばれます。
一度アプリを離れて再開する時にも呼ばれるので、ここで BatteryReceiver を登録します。
BatteryReceiver の解除
何度もレシーバーが登録されたり、実行された状態が続かないように、登録したレシーバーは必ず解除します。
10~14行目を追加します。
onPause メソッドはユーザーがアクティビティを離れる時に呼び出されます。
完成
最後にアプリを実行してみてください。
エミュレータでバッテリー状態を変更する方法
エミュレータの横にあるメニューバーの一番下「…」を押します。
左側メニューの上から4番目にある Battery から、バッテリー残量・ステータスを変更することができます。
その他のバッテリー情報
他にも Battery health(正常性)と Charger connection(充電方法)を取得できます。
Battery health は
- BATTERY_HEALTH_UNKNOWN
- BATTERY_HEALTH_GOOD
- BATTERY_HEALTH_OVERHEAT
などを取得できます。
Charger connection は
- BATTERY_PLUGGED_AC
- BATTERY_PLUGGED_USB
- BATTERY_PLUGGED_WIRELESS
を取得できます。
参考:BatteryManager | Android デベロッパー | Android Developers
サンプルコード
準備中