Не удается определить, находится ли определенное устройство Android в режиме энергосбережения - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь определить, находится ли устройство Android в режиме энергосбережения. Я использую популярный метод, который работает на большинстве устройств, но я заметил, что на 2 устройствах xiaomi возвращается, что режим энергосбережения отключен, что неправильно.

public static PowerSaveState getPowerSaveState(@NonNull Context context) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N)
        return PowerSaveState.IRRELEVANT_OLD_ANDROID_API;
    final PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
    if (pm == null) {
        Crashlytics.logException(new Exception("Can't get power save state"));
        return PowerSaveState.ERROR_GETTING_STATE;
    }
    return pm.isPowerSaveMode() ? PowerSaveState.ON : PowerSaveState.OFF;
}

Я обнаружил еще один метод, который люди рекомендуют

    final String result = Settings.Global.getString(context.getContentResolver(),"low_power");
//      final String result = Settings.System.getString(context.getContentResolver(), "psm_switch");
        WriteLog.print("Debug" + "Powersaving active: " + TextUtils.equals(result, "1"), context);

Но все равно возвращается, что устройство не находится в режиме энергосбережения. (xiaomi android 9)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...