2015-06-17 23 views
3

我試圖檢測在android 5.0棒棒糖上省電模式狀態之間的變化 - 啓用還是禁用,但沒有任何運氣。Android省電模式監聽器

我讀了[此用戶的文章] [1]

[1]:Android power save mode listener?但那裏的例子,它只是沒有我的設備 - 三星galaxy S5,基於安卓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

這是因爲三星和HTC都決定將其電源管理器設置存儲在Settings.System中。

HTC使用密鑰「user_powersaver_enable」,Samsung使用密鑰「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