Android省电模式监听器

时间:2015-06-17 17:08:51

标签: android android-5.0-lollipop

我试图在Android 5.0棒棒糖上检测节电模式状态之间的变化 - 启用或禁用,但没有任何运气。

我读了[这个用户的文章] [1]

[1]:Android power save mode listener?但是这个例子在我的设备上没有用 - 三星galaxy S5,基于android 5.0

我使用的来源是:

  <receiver android:enabled="true" android:name=".core.receiver.PowerSaveModeReceiver" >
        <intent-filter>
            <action android:name="android.os.action.POWER_SAVE_MODE_CHANGED"/>
        </intent-filter>
    </receiver>

因此,当我在设备上手动更改省电模式时,我只是没有收到任何广播。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

这是因为三星和HTC都决定将他们的电源管理器设置存储在Settings.System中。

HTC使用密钥“user_powersaver_enable”,三星使用密钥“psm_switch”。

示例ContentObserver将是:

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:Checking for Power Saver Mode Programically