API de Estado de Bateria
========================

**Obsoleto:** Esta característica ya no se recomienda. Aunque es posible que algunos navegadores aún lo admitan, probablemente ya se ha eliminado de los estándares web relevantes, está en proceso de eliminación o solo se conserva por motivos de compatibilidad. Evite usarlo y actualice el código existente si es posible; consulte la tabla de compatibilidad en la parte inferior de esta página para orientar su decisión. Tenga en cuenta que esta característica puede dejar de funcionar en cualquier momento.

La **API de Estado de Batería**, también conocida como "**Battery API**", provee información acerca del sistema de carga de la batería y permite notificar mediante eventos que son enviados cuando el nivel de la batería cambia. Este puede ser usado para ajustar el uso de recursos por parte de una aplicación y evitar un gasto innecesario de energía cuando la batería esta baja o para guardar cambios en un archivo antes de que la batería se agote y así prevenir perdida de información.

**Nota:** Esta API *no está disponible* en los Web Workers (no está expuesta en `WorkerNavigator`).

Interfaces
----------

`BatteryManager`

Provee información acerca del nivel de carga de batería del sistema.

`navigator.getBattery()`Read only 

Retorna una `Promise` que se resuelve con un objeto `BatteryManager`.

Ejemplo
-------

En este ejemplo, observamos los cambios en el estado de la carga (este o no conectado y cargando) y en el nivel de la batería. Esto se hace escuchando los eventos `chargingchange`, `levelchange`, `chargingtimechange` y `dischargingtimechange`.


```js
navigator.getBattery().then(function (battery) {
  function updateAllBatteryInfo() {
    updateChargeInfo();
    updateLevelInfo();
    updateChargingInfo();
    updateDischargingInfo();
  }
  updateAllBatteryInfo();

  battery.addEventListener("chargingchange", function () {
    updateChargeInfo();
  });
  function updateChargeInfo() {
    console.log(
      "La batería esta cargando? " + (battery.charging ? "Si" : "No"),
    );
  }

  battery.addEventListener("levelchange", function () {
    updateLevelInfo();
  });
  function updateLevelInfo() {
    console.log("Nivel de la batería: " + battery.level \* 100 + "%");
  }

  battery.addEventListener("chargingtimechange", function () {
    updateChargingInfo();
  });
  function updateChargingInfo() {
    console.log(
      "Tiempo de carga de la batería: " + battery.chargingTime + " segundos",
    );
  }

  battery.addEventListener("dischargingtimechange", function () {
    updateDischargingInfo();
  });
  function updateDischargingInfo() {
    console.log(
      "Tiempo de descarga de la batería: " +
        battery.dischargingTime +
        " segundos",
    );
  }
});
```


Vea también: El ejemplo en las especificaciones.

Especificaciones
----------------

| Specification |
| --- |
| Battery Status API  |

Compatibilidad del Navegador
----------------------------

### api.BatteryManager

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

### api.Navigator.getBattery

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Vea también
-----------

* Hacks blog post - Usando la API de Batería