How to check if Android Lollipop battery saver is on-ThrowExceptions

Exception or error:

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.

How to solve:

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();
}

###

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.

Leave a Reply

Your email address will not be published. Required fields are marked *