I eventually figured out how to do this with HTC and Samsung devices. Both save their power manager settings in Settings.System.
HTC (Sense) uses the user_powersaver_enable key. Samsung (Touchwiz) uses the psm_switch key.
Both store the boolean as String, and "0" is false and "1" is true. Then you can listen for changes using ContentObserver, for example (requires API level 16 or higher):
getContentResolver().registerContentObserver(Settings.System.CONTENT_URI, true, new ContentObserver(){ @Override public void onChange(boolean selfChange, Uri uri){ super.onChange(selfChange, uri); String key = uri.getPath(); key = key.substring(key.lastIndexOf("/") + 1, key.length()); if (key.equals("user_powersaver_enable") || key.equals("psm_switch")){ boolean batterySaverEnabled = Settings.System.getString(getContentResolver(), key).equals("1");
However, this will only be applicable until Android L is released when L is released. HTC and Samsung are likely to switch to the AOSP battery, which means you can use the new api battery saver in L.
source share