Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

Battery Status API

Battery API と呼ばれることも多い Battery Status API は、システムのバッテリー充電レベルに関する情報の提供、およびバッテリーレベルや充電状態が変化したときに発生するイベントによる通知を可能にします。これは、バッテリーが消耗したときにバッテリー消費を減らすためアプリのリソース使用状況を調整したり、データを失わないためバッテリーが切れる前に変更点を保存したりするために使用できます。

Battery Status API は window.navigator を、battery promise を返す navigator.getBattery() メソッドで拡張します。Promise は、バッテリーの状態監視を制御できる新たなイベントも提供する、BatteryManager オブジェクトで解決します。

以下の例では、充電状況 (電源に接続して充電中であるか) の変化およびバッテリーレベルの変化およびタイミングを監視します。これは、それぞれ chargingchange イベント、 levelchange イベント、chargingtimechangeイベント、dischargingtimechange イベントのリッスンによって実行します。

navigator.getBattery().then(function(battery) {

  console.log("Battery charging? " + (battery.charging ? "Yes" : "No"));
  console.log("Battery level: " + battery.level * 100 + "%");
  console.log("Battery charging time: " + battery.chargingTime + " seconds");
  console.log("Battery discharging time: " + battery.dischargingTime + " seconds");

  battery.addEventListener('chargingchange', function() {
    console.log("Battery charging? " + (battery.charging ? "Yes" : "No"));
  });

  battery.addEventListener('levelchange', function() {
    console.log("Battery level: " + battery.level * 100 + "%");
  });

  battery.addEventListener('chargingtimechange', function() {
    console.log("Battery charging time: " + battery.chargingTime + " seconds");
  });

  battery.addEventListener('dischargingtimechange', function() {
    console.log("Battery discharging time: " + battery.dischargingTime + " seconds");
  });

});

仕様書に記載されているサンプルもご覧ください。

仕様

仕様書 策定状況 コメント
Battery Status API 勧告候補 最初の定義

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート 39.0 10 (10) moz
16 (16)[1]
43 (43)[3]
未サポート 25 未サポート
機能 Android Android Webview Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Android 版 Chrome
基本サポート 未サポート 40.0

10.0 (10) moz
16.0 (16)[1]
43 (43)[3]

未サポート 25[2] 未サポート 42.0[2]

[1] Firefox 10.0 ではデフォルトで無効ですが、設定項目 dom.battery.enabledtrue に設定して有効化できます。Firefox 11.0 より、mozBattery がデフォルトで有効になりました。Battery API は現在 Android、Windows、UPower をインストールした Linux でサポートしています。Gecko 18.0 (Firefox 18.0 / Thunderbird 18.0 / SeaMonkey 2.15) より、Mac OS をサポートしました。Firefox は、非推奨である navigator.battery もサポートしています。

[2] BatteryManager.chargingTime および BatteryManager.dischargingTime の値は、常に Infinity です。

[3] Navigator.getBattery() の新しい promise ベースの構文は、Firefox 43 からサポートしています。

関連情報

ドキュメントのタグと貢献者

 このページの貢献者: yyss
 最終更新者: yyss,