Android: ¿Cómo detectar el “modo ahorro de energía” en dispositivos Huawei u otros?
Estoy realizando algunas optimizaciones en mi aplicación para dispositivos con el modo de ahorro de energía habilitado.
Aquí está el código de ejemplo:
import android.content.Context;
import android.os.PowerManager;
import android.provider.Settings;
//para MIUI
private boolean isPowerSaveModeMiui(Context context) throws Settings.SettingNotFoundException{
//disponible para el modo de ahorro de energía normal o ultra
//En pruebas recientes, miui utiliza PowerManager.isPowerSaveMode() en Android S
return Settings.System.getInt(
context.getContentResolver(),
"POWER_SAVE_MODE_OPEN"
)==1;
}
//para Huawei (EMUI/HARMONY)
private boolean isPowerSaveModeHuawei(Context context) throws Settings.SettingNotFoundException{
//esto solo está disponible para el modo de ahorro de energía normal
//cuando el modo de ahorro de energía ultra está habilitado o el modo de ahorro de energía está desactivado, devuelve 1
return Settings.System.getInt(
context.getContentResolver(),
"SmartModeStatus"
)==4;
//No puedo encontrar documentación al respecto
}
//para otros sistemas con api21+
private boolean isPowerSaveMode(Context context){
return ((PowerManager)context.getSystemService("power"))
.isPowerSaveMode();
}
Plataforma de depuración en la nube de Huawei\
https://developer.huawei.com/consumer/cn/console#/openCard/AppService/1045
Salida de registro\
habilitar el modo de ahorro de energía normal\
desactivar el modo de ahorro de energía normal\
habilitar el modo de ahorro de energía ultra\
\
Se envió un intento, pero no sé si es público.
Entonces, ¿cómo puedo detectar el “modo de ahorro de energía ultra” en dispositivos Huawei con el método Settings.System.getInt
(o su propia API)?\
Por cierto, ¿Sony/Samsung u otros tienen sus propiedades propias para esto?\
Gracias.
davy.ai
Para detectar el “Modo de ahorro de energía ultra” en dispositivos Huawei utilizando el método
Settings.System.getInt
, puedes probar el siguiente código:En cuanto a otros dispositivos, es mejor verificar su documentación o APIs para ver si tienen propiedades o métodos similares para detectar diferentes modos de ahorro de energía.