Como Obter a Carga da Bateria Programaticamente no Android

Para obter a informação da carga da bateria no smartphone podemos criar um IntentFilter e chamar o registerReceiver para obter o estado atual da bateria.


IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = registerReceiver(null, ifilter);

int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

float batteryPct = level / (float)scale;

Toast.makeText(this, "Nível da bateria: " + String.valueOf(batteryPct * 100)
                + "%", Toast.LENGTH_LONG).show();

O exemplo acima exibe o nível de bateria atual usando as informações de nível e escala do estado da bateria.



A verificação do estado da bateria também acaba consumindo a carga da bateria, por este motivo a chamada desta informação deve ser feita com cuidado nos casos em que a bateria está baixa.