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");

    }
  }
});

      

src: Automatically check power saving mode

0


source







All Articles