26

Android Lollipop introduced a battery saver mode that can be turned on at any time, and turns on by default when the battery is at 15% or lower. This poses a problem for my app, since the battery saver disables animations that provide crucial information. (Just to give context, my app allows users to configure an Android Wear watch face; when they save a new "theme," I animate the theme moving to a button on the action bar so that they know where it was saved to. When animations are disabled by the battery saver, nothing happens when they hit save, which I think would be confusing.)

So, is there a way to programmatically determine whether the battery saver is on? That way I can provide an alternative to the animation(s) such as displaying a Toast.

Tony Wickham
  • 4,706
  • 3
  • 29
  • 35

2 Answers2

43

Take a look at power manager

It has a method isPowerSaveMode() that will tell you if battery saver is on

Example code:

PowerManager powerManager = (PowerManager)
    getActivity().getSystemService(Context.POWER_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP
        && powerManager.isPowerSaveMode()) {
    // Animations are disabled in power save mode, so just show a toast instead.
    Toast.makeText(mContext, getString(R.string.toast), Toast.LENGTH_SHORT).show();
}
Tony Wickham
  • 4,706
  • 3
  • 29
  • 35
Andrew Brooke
  • 12,073
  • 8
  • 39
  • 55
-1

In Android lollipop Battery saver has their own methods which tells you either Battery saver is On or Off like isPowerSaveMode() which returns a boolean vlue.

HassanUsman
  • 1,787
  • 1
  • 20
  • 38