如何在Android“小米MIUI”设备中检测“省电模式”?

3
如何在Android“小米MIUI”设备中检测“省电模式”?
我使用以下代码来检测Android 5、6中的“省电模式”:
PowerManager powerManager = (PowerManager)
    getActivity().getSystemService(Context.POWER_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP
    && powerManager.isPowerSaveMode())
{
    //power saving mode
}

但是在小米MIUI设备上无法正常工作。


你解决了这个问题吗? - Alexey Subbota
有什么解决办法吗? - Pratik Deogade
2个回答

2
private void isPowerSaveModeHuaweiXiaomi(){
  if (Build.MANUFACTURER.equalsIgnoreCase("Xiaomi")) {
    try {
       int value = android.provider.Settings.System.getInt(getContext().getContentResolver(), "POWER_SAVE_MODE_OPEN");
               
            } catch (Settings.SettingNotFoundException e) {
                Log.d("Valor modo bateria:", "Error");
            }
        }else if (Build.MANUFACTURER.equalsIgnoreCase("Huawei")){
            try {
                int value = android.provider.Settings.System.getInt(getContext().getContentResolver(), "SmartModeStatus");
                
            } catch (Settings.SettingNotFoundException e) {
                Log.d("Valor modo bateria:", "Error");
            }
        }
    }

1
请尝试在您的答案旁边提供一些解释,以使其对未来读者更有用。 - Philip Ciunkiewicz

1

对于小米ROM,系统设置名称POWER_SAVE_MODE_OPEN将用于保存省电模式,因此我们可以使用此名称通过系统设置API检测其是否开启或关闭。

android.provider.Settings.System#getInt(android.content.ContentResolver, java.lang.String, int)

要监视省电模式的更改,我们可以为miui.intent.action.POWER_SAVE_MODE_CHANGED注册一个意图接收器,或者使用ContentObserver监视content://settings/system/POWER_SAVE_MODE_OPEN的URI。

从这个answer查看详细的代码实现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接