更新中。

デバイスのバッテリー情報を取得できる「Battery Status API」

スマホをはじめとする端末のバッテリー情報を、JavaScriptを使って取得する方法を紹介します。この「Battery Status API」は対応していないブラウザもあるので注意してください。

アクセス時点でのバッテリー情報を取得しよう

<!DOCTYPE html>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0">
<title>このページにアクセスした時点でのバッテリー情報を取得するサンプル</title>

<h1>このページにアクセスした時点でのバッテリー情報</h1>
<ul>
  <li>バッテリー残量(%):<span id="level"></span>[%]
  <li>バッテリー残量(秒):<span id="dischargingTime"></span>[s]
  <li>充電中(true/false):<span id="charging"></span>
  <li>充電完了までの時間:<span id="chargingTime"></span>[s]
</ul>

<script>
navigator.getBattery().then(function(battery) {
  document.getElementById('level').innerHTML = battery.level;
  document.getElementById('charging').innerHTML = battery.charging;
  document.getElementById('chargingTime').innerHTML = battery.chargingTime;
  document.getElementById('dischargingTime').innerHTML = battery.dischargingTime;
});
</script>
navigatorオブジェクトにgetBattery()メソッドを繋げることで、BatteryManagerというオブジェクトが作成され、そこからバッテリー情報を取得することが出来ます。navigator.getBattery()の部分で得られるPromise(非同期処理に特化した格納箱)の中身を見てみましょう。<br> ここに格納されている関数などをthenメソッドを使って実行可能にし、thenメソッドの中でこれらの関数を実行すれば値が取得できます。PromiseはArrayと違って、thenメソッドで値を取得することに注意してください。

リアルタイムのバッテリー情報を取得しよう

<!DOCTYPE html>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0">
<title>リアルタイムのバッテリー情報を取得するサンプル</title>

<h1>リアルタイムのバッテリー情報</h1>
<ul>
  <li>充電中(true/false):<span id="charging"></span>
  <li>バッテリー残量(%):<span id="level"></span>[%]
  <li>バッテリー残量(秒):<span id="dischargingTime"></span>[s]
  <li>充電完了までの時間:<span id="chargingTime"></span>[s]
</ul>

<script>
navigator.getBattery().then(function(battery) {
  
  //充電(ON/OFF)によって発火
  battery.onchargingchange = function(){
    document.getElementById('charging').innerHTML = battery.charging;
  }

  //バッテリー残量が変化したときに発火
  battery.onlevelchange = function(){
    document.getElementById('level').innerHTML = battery.level;
  }

  //残りの充電時間が変化したときに発火
  battery.ondischargingtimechange = function(){
    document.getElementById('dischargingTime').innerHTML = battery.dischargingTime;
  }

  //残りのバッテリー時間が変化したときに発火
  battery.onchargingtimechange = function(){
    document.getElementById('chargingTime').innerHTML = battery.chargingTime;
  }
});
</script>

参考

執筆者Writer

AnTytle

コメントComment

ログインするとサムネや名前を表示できます。