バッテリーチェッカー

【Android Studio】バッテリーチェッカーの作り方 第2回「バッテリー状態を取得する」

 
ここまでの記事はこちら
 

今回は BroadcastReceiver クラスを使ってバッテリー情報を取得して

  • バッテリーの状態
  • バッテリー残量
  • バッテリー残量に合わせた画像

の3つを準備していきます。
 
 


 

動画

準備中
 
 
 

解説

BattreryReceiverクラスの作成

バッテリー情報を取得する BatteryReceiver クラスを用意します。
 

Android Studio 左側のプロジェクト構造の app → java → パッケージ名(com.example.batterychecker)の上で右クリック して「New → Java Class」を選択します。


 
 

BatteryReceiver と入力して return キーを押します。


 
 

BroadcastReceiver クラスを拡張する

バッテリーの状態に変化があった時にシステムから送信されるメッセージを受け取るために BroadcastReceiver クラスを拡張します。
 

extends BroadcastReceiver を書きます。

public class BatteryReceiver extends BroadcastReceiver {

 

コードに赤い波線が付いていますが、これは onReceive メソッドがないことが原因です。


 
 

赤い豆電球のアイコンをクリックして Implement Methods を選択します。


 
 

onReceive メソッド を選択した状態で OK を押します。


 
 

追加された onReceive メソッド内でバッテリー情報を取得していきます。


 
 
 

onReceive メソッドの実装

受信したアクションを取得

5~13行目を追加します。

 

5~7行目

TextView と ImageView を用意しています。
 

9行目

インテントでメッセージが渡されてくるので intent.getAction() で、どんなアクションを受信したかを取得します。
 

11行目

ACTION_BATTERY_CHANGED というバッテリー状態が変更されたアクションかどうかを判定します。
 
 
 

バッテリー状態の取得

バッテリー状態を取得して statusLabel に表示します。

10~30行目を追加します。

 
 

getIntExtra メソッドで EXTRA_STATUS(ステータス)を取得します。

取得できるステータスは

  • 充電完了(BATTERY_STATUS_FULL)
  • 充電中(BATTERY_STATUS_CHARGING)
  • 放電中(BATTERY_STATUS_DISCHARGING)
  • 充電していない(BATTERY_STATUS_NOT_CHARGING)
  • 不明(BATTERY_STATUS_UNKNOWN)

の5種類です。
 
 
 

パーセンテージの計算

12~15行目を追加します。

 
 

EXTRA_LEVEL は現在のバッテリー量、EXTRA_SCALE はバッテリーの総量です。

percentageLabel には 73% のようにバッテリー残量をパーセント表示したいので

現在のバッテリー量(level)÷ バッテリー総量(scale) x 100

と計算しています。
 
 

画像の表示

表示する画像は先ほど計算したパーセンテージによって切り替えます。

12~26行目を追加します。

 
 

バッテリー残量が 90% 以上の場合は b100, 65% 以上 90%未満の場合は b75 のように表示する画像を決めています。
 
 
 

次に行うこと

以上で BatteryReceiver クラスの実装は完了です。

次回はシステムから送信されたメッセージを受け取るために BatteryReceiver を登録しましょう。

第3回「BatteryReceiverを登録する」に進む
 

ここまでのコード

 
 

ABOUT ME
Sara
「わかりやすく・シンプル」をモットーに、スマホアプリ・ウェブアプリの作り方を紹介します。 独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています🙂
guest
0 Comments
Inline Feedbacks
View all comments
0
この記事にコメントするx