端末の電池の残量をアクティビティに渡したい
アプリを作成している時に、端末の電池の残量を取得したい事があると思います。仕組みは電池の残量を管理するサービスから情報をもらう事になります。情報の取得方法を見てみましょう。
情報を探してみたけど、情報をレシーバで受け取るところまではたくさんあるけど、肝心のその情報をアクティビティなどで読み取る情報がなかったのでメモがてら公開します。
TestActivity.java
public class TestActivity extends ActionBarActivity {
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
}
public void onPause() {
super.onPause();
// 電池残量レシーバを終了する
unregisterReceiver(broadcastReceiver);
}
public void onResume() {
super.onResume();
// 電池残量レシーバを登録する
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(broadcastReceiver, filter);
// 電池残量レシーバで登録した情報を取得する
Bundle extras = mBroadcastReceiver.getResultExtras(true);
Log.v(“level”, String.valueOf(extras.getInt(“level”, -1)));
}
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// 情報を登録する
Bundle extras = getResultExtras(true);
extras.putInt(“level”, intent.getIntExtra(“level”, 0));
setResultExtras(extras);
}
}
このサンプルではレシーバから電池の残量をTestActivityに渡す処理になります。
取得できる項目は残量の他に下記があります。
status(int)…充電状態 BatteryManager.BATTERY_STATUS_(CHARGING|DISCHARGING|FULL|NOT_CHARGING|UNKNOWN)
health(int)…バッテリーの健康状態 BatteryManager.BATTERY_HEALTH_(UNKNOWN|DEAD|GOOD|OVERHEAT|OVER_VOLTAGE|UNSPECIFIED_FAILURE)
present(boolean)・・・バッテリーの有無
level(int)…残量
scale(int)…残量の最大値
icon-small(int)…ステータスバーアイコンのリソースID
plugged(int)…ケーブルの接続状態 BatteryManager.BATTERY_PLUGGED_(AC|USB)
voltage(int)…バッテリの電圧(mV)
temperature(int)…バッテリの温度、0.1度単位。例えば、197は、19.7度。
technology(String)…バッテリの種類
参考になれば大変幸いです。
メイン広告
関連記事
-
Android開発環境の導入(その2) – JDKのインストール
前回は全体の流れを書いたけど、今回からは具体的な内容へ! まずは「JDKの
-
Android & Bluetooth(その1)
さて、今回は自己満足の自作アプリをBluetoothで制御しようとしハマッたお話です。 大概記事書
-
androidをスリープ状態にしたくない!
今回はandroid開発ネタで。動画や音楽再生には必須といえる「スリープ状態にしない」とい対応につい
-
Android開発環境の導入(その1)
自宅資料の中から使いそうなやつを抜粋。 何回かに分けて公開しよう。
-
AndroidManifest.xmlのandroid:launchModeについて
今回は、AndroidManifest.xmlのandroid:launchModeについてなんだか
-
Android & Bluetooth(その2)
前回は、AndroidアプリをBluetoothで制御するのにお手上げ状態でした。今回は、他のBlu
横長広告
- PREV
- Flightradar24
- NEXT
- androidをスリープ状態にしたくない!