在android 5.0棒棒糖上,我试图检测省电模式状态之间的变化-启用或禁用,但没有任何运气。
我读了这个用户的文章
1:Android power save mode listener?,但在我的设备上--三星galaxy S5,基于Android5.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>因此,当我手动更改设备上的省电模式时,我不会收到任何广播。谢谢你的帮助!
发布于 2016-02-12 02:07:20
这是因为三星和宏达电都决定将其电源管理器设置存储在Settings.System中。
宏达电使用密钥"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");
}
}
});https://stackoverflow.com/questions/30898047
复制相似问题