Atualizado: 21/06/2025

Este conteúdo é original e não foi gerado por inteligência artificial.

API Battery Status em JavaScript

A Battery Status API permite acessar informações sobre o estado da bateria de um dispositivo. Esses dados podem ser utilizados para adaptar o comportamento de uma página web de acordo com o nível de carga ou o status de carregamento da bateria. A API define o objeto BatteryManager, que fornece propriedades e eventos para monitorar o estado da bateria. Você pode obter um objeto BatteryManager chamando o método getBattery() na interface navigator:

navigator.getBattery().then((batteryManager) => console.log(batteryManager)); // BatteryManager { ... }

O método navigator.getBattery() retorna uma Promise. A função passada para o método then() recebe como argumento um objeto do tipo BatteryManager.


Propriedades do BatteryManager

O objeto BatteryManager fornece as seguintes propriedades para obter informações detalhadas sobre a bateria:

  • charging: Um valor booleano que indica se a bateria está sendo carregada no momento.
  • chargingTime: O tempo restante em segundos até que a bateria esteja completamente carregada. Será 0 se a bateria já estiver totalmente carregada e Infinity se não estiver sendo carregada.
  • dischargingTime: O tempo restante em segundos até que a bateria esteja completamente descarregada. Será Infinity se a bateria estiver sendo carregada.
  • level: O nível de carga da bateria, representado como um número entre 0.0 e 1.0.

No exemplo abaixo, utilizamos o BatteryManager para exibir informações sobre o status da bateria no console:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Status da Bateria</title>
  </head>
  <body>
    <script>
      async function displayBatteryStatus() {
        const batteryManager = await navigator.getBattery();
        console.log("Carregando:", batteryManager.charging);
        console.log("Tempo restante para carga completa (segundos):", batteryManager.chargingTime);
        console.log("Tempo restante para descarga completa (segundos):", batteryManager.dischargingTime);
        console.log("Nível de carga:", batteryManager.level);
      }
      displayBatteryStatus();
    </script>
  </body>
</html>

Eventos do BatteryManager

A API também fornece eventos que permitem monitorar alterações no status da bateria em tempo real. Estes são os eventos disponíveis:

  • chargingchange: Disparado quando o status de carregamento da bateria (propriedade charging) muda.
  • chargingtimechange: Disparado quando o tempo restante para a carga completa (propriedade chargingTime) muda.
  • dischargingtimechange: Disparado quando o tempo restante para a descarga completa (propriedade dischargingTime) muda.
  • levelchange: Disparado quando o nível de carga da bateria (propriedade level) muda.

O código a seguir demonstra como monitorar as mudanças no status da bateria e responder aos eventos disparados:

function displayBatteryStatus(battery) {
  console.log("Carregando:", battery.charging);
  console.log("Tempo restante para carga completa (segundos):", battery.chargingTime);
  console.log("Tempo restante para descarga completa (segundos):", battery.dischargingTime);
  console.log("Nível de carga:", battery.level);
}

navigator.getBattery().then((battery) => {
  // Exibe o status inicial da bateria
  displayBatteryStatus(battery);

  // Adiciona ouvintes para monitorar mudanças no status
  battery.addEventListener("chargingchange", () => {
    console.log("Carregando:", battery.charging);
  });

  battery.addEventListener("chargingtimechange", () => {
    console.log("Tempo restante para carga completa (segundos):", battery.chargingTime);
  });

  battery.addEventListener("dischargingtimechange", () => {
    console.log("Tempo restante para descarga completa (segundos):", battery.dischargingTime);
  });

  battery.addEventListener("levelchange", () => {
    console.log("Nível de carga:", battery.level);
  });
});

Considerações finais

O BatteryManager é uma ferramenta poderosa para criar experiências web mais conscientes do consumo de energia. Por exemplo, é possível ajustar a qualidade de vídeos ou desativar funcionalidades que consomem muitos recursos quando a bateria está baixa. Além disso, os eventos permitem que você reaja dinamicamente às mudanças no status da bateria, oferecendo uma melhor experiência para o usuário.

Documentação oficial:

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com