Android 省电模式监听器

标签 android android-5.0-lollipop

我正在尝试检测省电模式状态之间的变化 - 启用或禁用,在 android 5.0 Lollipop 上,但没有任何运气。

我阅读了[该用户的文章][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>

所以当我在我的设备上手动更改省电模式时,我只是收不到任何广播。感谢您的帮助!

最佳答案

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

HTC 使用 key “user_powersaver_enable”,三星使用 key “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");

    }
  }
});

来源:Checking for Power Saver Mode Programically

关于Android 省电模式监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30898047/

相关文章:

android - Textview - 最大长度不适用于椭圆

android - 如何读取/写入数据到已挂载的 SD 卡

android - 对启用交换 (swapon) 的 Android 设备的性能进行基准测试

Android Lollipop EditText : AutoComplete Not Working For Email Addresses

android - 像在 android L 中一样实现 NavigationDrawer 图标

android - 在样式中使用颜色引用

java - 一个方法是protected的,但是我通过反射得到了该方法的修饰符,该修饰符是public的。 IDE是Android Studio

Android AppCompat-v21 与 Pure Material

android - appWidget 仅在 Lollipop 设备的启动器小部件列表中不显示

android - 使用海拔创建 Android 5.0 应用程序的屏幕截图