我正在尝试检测省电模式状态之间的变化 - 启用或禁用,在 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");
}
}
});
关于Android 省电模式监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30898047/