Вот пример кода, как можно получить уровень заряда аккумулятора в Android.
Настраиваем слушатель для IntentFilter(Intent.ACTION_BATTERY_CHANGED);
И при каждом изменении уровня будем получать событие в этом слушателе.
В extra-параметрах получаю процент заряда через переменную "level" .
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// На экране есть текстовое поле "batteryLevel", где и отображаю процент заряда.
final TextView batteryLevel = (TextView) this.findViewById(R.id.batteryLevel);
BroadcastReceiver receiver = new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent intent) {
int level = intent.getIntExtra("level", 0);
batteryLevel.setText(String.valueOf(level) + "%");
}
};
this.registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
...
}
Другой способ - это прочитать содержимое файла: /sys/class/power_supply/battery/capacity
В этом файле также текстом написан текущий % заряда.
В первом способе система сама будет оповещать об изменениях, а во втором надо сделить за содержимым файла с каким-то интервалом.