5

I just need the battery level percentage at one point to print it on the screen, but I don't want to keep monitoring it afterwards.

All code on the internet seems to listen for future changes, but I just need it once. What can be done to get it in a simple way?

divibisan
  • 11,659
  • 11
  • 40
  • 58
Sanziana
  • 189
  • 2
  • 2
  • 4

1 Answers1

25

As stated in Get battery level only once using Android SDK You can use the following code:

public float getBatteryLevel() {
    Intent batteryIntent = registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
    int level = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
    int scale = batteryIntent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

    // Error checking that probably isn't needed but I added just in case.
    if(level == -1 || scale == -1) {
        return 50.0f;
    }

    return ((float)level / (float)scale) * 100.0f; 
}
Community
  • 1
  • 1
woot
  • 3,671
  • 4
  • 26
  • 39