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.