我正在尝试寻找是否可以通过编程方式启用和/或禁用 Android 的内置“省电”模式。
欢迎任何官方方法或欺骗。
作为引用,以下是按照 Android 5.0 中的标准 UI 执行此操作的方法: http://www.androidcentral.com/android-50-lollipop-basics-how-get-more-life-between-charges-battery-saver
我知道你可以 detect它 -- 这不是我所追求的。
谢谢大家。
最佳答案
您可以在已获得 root 权限的设备上以编程方式启用/禁用省电模式。您必须编辑 global
表中的 low_power
值,在 /data/data/com.android.providers.settings/databases/settings.db
文件。
如果你的设备支持settings
命令,你可以执行(作为root):
settings put global low_power 1
启用节能器和
settings put global low_power 0
禁用它。
如果没有,使用sqlite3
命令:
sqlite3 /data/data/com.android.providers.settings/databases/settings.db "update global set value='1' where name='low_power';"
sqlite3 /data/data/com.android.providers.settings/databases/settings.db "update global set value='0' where name='low_power';"
罢工><罢工>罢工>
请记住,您必须先将手机从 PC 上拔下,否则系统将禁用 Energy Saver。通过 WiFi 或 Android 终端(模拟器)使用 ADB。
更新:
sqlite3
方法似乎不再可靠了。
我不确定是否发送了 android.os.action.POWER_SAVE_MODE_CHANGED 广播。也许你必须手动发送它,就像来自 here 的代码一样:
private static String COMMAND_ENABLE = "settings put global low_power 1\n" +
"am broadcast -a android.os.action.POWER_SAVE_MODE_CHANGED --ez mode true\n";
private static String COMMAND_DISABLE = "settings put global low_power 0\n" +
"am broadcast -a android.os.action.POWER_SAVE_MODE_CHANGED --ez mode false\n";
此外,据报道在设置数据库中出现了一个新的 power_saving 条目,但是在 Android 6.0.1 中我还没有找到它。在 Android 7.1.1_r13 中 low_power 仍在内部使用(例如 here ),但它可能会在某些 Android 版本中发生变化。您可能希望继续检查更改,例如this和 this文件。
关于android - 以编程方式启用/禁用 "Battery Saver"模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28234502/