我目前正在實現一個功能,要求用戶忽略應用程序的電池優化。這樣做的原因是,應用程序的主要功能不幸受到省電模式的嚴重影響。isPowerSaveMode()對於華爲設備總是返回false
爲了達到我的目標,我通過創建Intent
並將Action
設置爲ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
來提示用戶。
雖然在發射Intent
之前,我同時檢查了isPowerSaveMode()
和isIgnoringBatteryOptimizations()
,以確保當省電模式未啓用時我不提示用戶;這是該功能的要求。我這樣做的方法是:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
boolean isPowerSaveMode = pm.isPowerSaveMode(); // always returns false for Huawei devices
也能正常工作的大多數設備,但對於華爲的設備,isPowerSaveMode()
總是返回false
。因此,由於前提條件失敗,提示不會顯示。
有其他人可能遇到過這個問題嗎?如果是這樣,你做了什麼來解決它?
請注意,Xamarin.Android
SDK中也存在相同的問題。
有一種解決方法,已經描述[這裏](https://stackoverflow.com/questions/15133392/find-out-if-power-saving-mode-enabled-android-sdk) – Ch4t4r
@ Ch4t4r謝謝爲鏈接。它雖然不能解決我遇到的問題。 – Demitrian
您確定它與手機上安裝的Android版本無關嗎?如果是的話,你可以試試這段代碼嗎? PowerManager powerManager =(PowerManager) getActivity()。getSystemService(Context.POWER_SERVICE); 如果(android.os.Build.VERSION.SDK_INT> = Build.VERSION_CODES.LOLLIPOP && powerManager.isPowerSaveMode()){ } – hugoterelle