我试图在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>
因此,当我在设备上手动更改省电模式时,我只是没有收到任何广播。谢谢你的帮助!
答案 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");
}
}
});