Android Power Saving Receiver
I'm trying to detect a power saving state change - enabled or disabled on Android 5.0 lottery, but with no luck.
I read [this user's article] [1]
[1]: Android power saving mode listener? but with the example there, it just doesn't work on my device - Samsung Galaxy S5 based on android 5.0
The source I'm using:
<receiver android:enabled="true" android:name=".core.receiver.PowerSaveModeReceiver" >
<intent-filter>
<action android:name="android.os.action.POWER_SAVE_MODE_CHANGED"/>
</intent-filter>
</receiver>
So I just don't get the broadcast when I manually change the power saving mode on my device. Thanks for the help!
+3
source to share
1 answer
This is because both Samsung and HTC have chosen to keep their Power Manager settings in Settings.System.
HTC uses the "user_powersaver_enable" key and Samsung uses the "psm_switch" key.
ContentObserver example:
getContentResolver().registerContentObserver(Settings.System.CONTENT_URI, true, new ContentObserver(null){
@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");
}
}
});
0
source to share